[repost] Injecting a DLL in a Modern UI Metro Application
Original link: https://blog.nektra.com/main/2013/02/25/injecting-a-dll-in-modernui-metro-app-win8/Dll injection is one of the oldest techniques used to run custom code inside a target application in Windows. It is usually used to intercept and modify normal application behavior or add new functionality.Injecting a DLL in a target process is a relatively easy task: you simply create a remote thread that calls LoadLibrary using CreateRemoteThread or NtCreateThreadEx. You will need some privileges to be able to access the injected process but that is beyond the scope of this article.When you try to inject a library into a Windows 8 Modern UI Metro application you will find that although the injection code works as expected, your DLL will NOT load, LoadLibrary will return FALSE and GetLastError will return ERROR_ACCESS_DENIED.Well, you think… Modern UI applications have very limited access to computer resources and run in a sandboxed environment, so problems are to be expected.While doing some research on how to add new functionallity to the Windows Mail application that comes with Windows 8 and how to hook Modern UI apps using Deviare, we needed find out why LoadLibrary was failing.Reverse engineering comes into playWe started to analyze what LoadLibrary does. It calls LoadLibraryEx with dwFlags=0 and LoadLibraryEx does some checks. First stop.If you want to load a package you must use the LoadPackagedLibrary API. If you want to load a normal DLL, you have to use LoadLibrary[Ex]. LoadPackagedLibrary documentation says that the path cannot be absolute or contain “..” but these checks are mainly done in the LoadLibraryEx routine. The only difference between LoadLibrary and LoadPackagedLibrary is wether the dwFlags parameter has a value of 4 or of zero.Among other things, LoadLibraryEx will build the search path to locate your DLL and then call the undocumented LdrLoadDll. Because we want to enforce using the path where our library is located, we changed our code to call LdrLoadDll directly.Second Try:Although LdrLoadDll correctly found our dll, when we used SpyStudio to check for errors, we saw that a call to NtOpenFile failed, reporting STATUS_ACCESS_DENIED. We realized that there was a security-related issue.Using the icacls.exe utility, we set the DLL file privileges to allow read and execute access to low integrity processes. Also we added a special Windows 8 user named “ALL APPLICATION PACKAGES” to the list of users with permission to read and execute the DLL code.Third Try:NtOpenFile passed initial security checks, but our DLL was still not loading.Continuing to research LdrLoadDll, we jumped into the kernel-mode of the NtCreateSection API and got that the CiValidateImageHeader function of ci.dll was returning a STATUS_INVALID_IMAGE_HASH error so we added a digital signature to the file. To prevent future problems, we used a real certificate instead of the self-signed one.Now CiValidateImageHeader was ok, but a later call to CiValidateImageData returned the same error. We then added the “/ph” parameter to the SignTool.exe utility to include pages hashes in the signing process.Fourth Try:Well, we thought: we have a signed dll, privileges are ok. Let’s try again.FAIL.This time, the culprit was a function named “SeGetImageRequiredSigningLevel” located in ntoskrnl.exe. SeGetImageRequiredSigningLevel checks the minimum certificate requirements to load a DLL inside a WinRT application.We realized we needed to sign our DLL with a cross-certificate, like those used to sign kernel-mode drivers.Conclusion:We could not continue our tests because we do not have that kind of certificate right now, but we discovered that a kernel setting determines what kind of certificate is checked by SeGetImageRequiredSigningLevel.This blog post explains how to manually bypass the security check and run untrusted applications on a Microsoft Surface device using WinDbg. We can follow a similar procedure to manually bypass the security check and correctly map and inject the DLL in the WinRT application on the desktop Windows operating system.The exception:Before starting our whole research, we already had a method for injecting a DLL in WinRT applications: copy the DLL file inside the System32 folder and voilá! Although you need administrative privileges to copy a file to the System32 folder, once there, you can load it using LoadLibrary without using a path, since this folder is one of the default locations the Windows operating system will search. In addition, because you are using a relative-path, some security checks are skipped. Another plus is that you will not ever need to digitally sign the file!But like many companies, we want to avoid copying DLL files into the ever-growing System32 folder and keep our files in the same location as our application. This is why we started our research.
[Repost] Network icon showing a red X after installing Bluesoleil
Original: Microsoft CommunitySymptom: After installing Bluesoleil, the network icon on the system tray shows a red X all the time regardless what the current state is with network connectionOne cause: In my particular case, this problem was caused by conflicts between Bluesoleil and VPN softwareSolution: Uninstall both Bluesoleil and VPN, and then install Bluesoleil first. If you need VPN, install VPN after Bluesoleil has been installed.I'm writing this post to benefit people who might have this very same problem. There are a few similar threads in this forum, and there were not any real solutions, but they're all locked for updates. It is an annoying nuisance, but it could be very painful and costly if you want to resolve this problem. Since most of the solutions suggested involve fiddling with drivers and/or Windows Registry, you could brick your computer if you don't really know what you're doing. I'm an experienced software developer, so based on my experiences and instincts, I could tell those dozens of (if not more) suggestions from various forums if they had a chance to solve my problem. But even so, it costed me well over half a day to finally resolve this problem. Luckily I finally found the culprits and a relatively easy and unpainful solution.Bluesoleil is a Bluetooth application provided with many cheap USB bluetooth dongles, especially for those ones made in China. It provides a rich set of BT stacks for supporting extensive BT functionalities. Thanks to the generic and poor BT support in MS Windows, Bluesoleil is one of very few solutions you can get if you want to make the more extensive BT functionalities work in the Windows environment.I have a few USB BT dongles lying around. I use one of them sporadically simply for transferring files between various mobile devices and PC--it's easier than doing this via wired or wifi network connections for not very large files. The generic BT support in Windows suffices this need, so I've never bothered to use any 3rd party BT software. Recently I wanted to stream music from my mobile phone to PC, so I installed Bluesoleil. As soon as Bluesoleil was installed, the Windows network icon on the system tray became a BIG RED X. At first I thought there were problems with wifi and/or wired network connections, but it turned out that everything was working fine and it's just Windows showing the wrong network connection state.There are a few question threads in this forum for this particular problem--links posted below, but none of the suggestions posted in those threads could resolve my particular problem. Though I wanted to post a reply to those threads, they are locked for updates.https://answers.microsoft.com/en-us/windows/forum/windows_7-networking/after-installing-bluesoleil-network-cannot-be/5e1eeb48-fdb1-4c3b-9edf-b1f6e75468f0https://answers.microsoft.com/en-us/windows/forum/windows_7-networking/network-icon-shows-red-x/225ba154-a65d-425f-94b6-e609aa60cb35It appears to me that there could be dozens of causes to this problem from all the suggestions I've seen. It turned out in my particular case, the problem was caused by conflicts between Bluesoleil and VPN software. I had two VPN programs installed on my computer, and they worked differently: one simply used Winsock filter drivers, and the other one (Ethersoft VPN) had a bunch of legacy drivers in addition to filter drivers. Either one of the two VPN programs would cause the red X issue if it was installed before Bluesoleil. The uninstallation program of Ethersoft VPN was a crap and it did not completely remove all the drivers. I had to manually unistall a driver and going through the Windows Registry to clean up the garbages it left behind. But after more than an hour working on manually cleaning up Ethersoft VPN, the issue was still there. Finally I found out I had another VPN software installed a long time ago. Removing this other VPN was simple and easy. And the red X went away as soon as all VPN programs were uninstalled.If you encounter the same BIG RED X after installing Bluesoleil but you don't have any VPN program on your computer, you may want to check the following forums and see if any suggestion could solve your problem (but beware of the consequences of fiddling with drivers and/or Windows Registry if you don't really know what you're doing):https://answers.microsoft.com/en-us/windows/forum/windows_7-networking/lost-all-my-network-adapters-network-icon-is-xed/2541cc9f-54d5-4bbc-a228-57d0ce445dc4https://superuser.com/questions/661976/windows-7-shows-red-x-on-network-icon-but-im-connectedhttps://www.sevenforums.com/network-sharing/117071-solution-wrong-wireless-network-icon-displayed.htmlhttps://www.youtube.com/watch?v=9R2QrdPX8b4
This is an article under construction...To display Chinese on the game list, install the following components:sudo apt-get install libsdl2-dev libboost-system-dev libboost-filesystem-dev libboost-date-time-dev libboost-locale-dev libfreeimage-dev libfreetype6-dev libeigen3-dev libcurl4-openssl-dev libasound2-dev libgl1-mesa-dev build-essential cmake fonts-droid
Repost: 流感下的北京中年 original by 李可 & 复盘 Original by caixin
Source: https://mp.weixin.qq.com/s/fqJ0NYpumVKPQhkOMQd8Hg女儿：“姥爷怎么这么长时间还不回来？”妈妈：“姥爷生病了，在医院打针。”女儿：“姥爷是我最好的朋友，姥爷给我吃巧克力。”“妈妈怎么哭了？”==========================全文近2.6万字，与平时巴菲特主题无关，请订阅者见谅。本文逐日记录岳父从流感到肺炎、从门诊到ICU，29天阴阳两隔的经历。涉及就诊、用药、开销、求血、插管、人工肺（ECMO）等信息，希望大家用不上！下列主题，可以搜索标题里的关键字或日期进行查询：不隔离流感家人，你就是在害孩子：12月28日-31日病毒阴性、高烧不退，马上去大医院：1月3日-4日护士不给高热病人挂号，你应该怎么办：1月4日为何感冒病人要吸氧：1月5日卧倒、卧倒，别再让重症感冒病人走路了：1月5日选择住院医院的标准，如果你能选的话：1月5日从流感到肺炎，不是小病，是生命保卫战：1月5日如何买达菲：1月5日心电监护仪，没他真不行：1月7日救护车费用：1月8日ICU开销：1月8日人在ICU，你借出的钱能收得回来吗：1月8日插管前，说出遗言：1月11日人工肺（ECMO）费用：1月11日为亲属上人工肺（ECMO），你的决定遗漏了什么？：1月11日，1月18日医生不会告诉你的人工肺（ECMO）信息：治愈概率、愈后情况、治疗时间：1月13日人工肺（ECMO）与脑溢血和血栓：1月13日人工肺（ECMO）与谵（zhan）妄：1月18日输血不是花钱就能有，互助献血操作流程：1月13日大医院转小医院，为什么会这样：1月22日肺移植：1月22日远程重症病人救护车运输：1月22日担架病人搭乘民航班机规定：1月22日远程重症病人医疗飞机运输（实现小目标后入）：1月22日民航关于携带骨灰的规定：1月23日亲人过世，通知殡仪馆，远离太平间：1月23日开具死亡证明，你需要的证件：1月24日为遗体穿衣，谁会帮你的第一次：1月24日火化流程：1月24日==========================一、流感女儿：“姥爷不听话，光膀子，感冒啦！”12月27日（星期三）下午，阳光灿烂，岳母打开主卧窗子通风。岳父忽然来了个念头，一定要同时打开厨房窗子南北对流通风，并且坚持不穿上衣，吹了半小时。期间岳母两次要他穿衣服，一次让他关窗，均被拒绝。当时我也在家，为了避免矛盾，我没有径直去关窗，故意和岳母打了个招呼：“妈，我把窗关了哈！”岳母还没说话，岳父说：“不得（dei，三声）！”岳父开窗和不穿衣服和他的习惯有关。我们南方人冬天在家都穿羽绒服，我结婚前第一次去黑龙江惊掉了下巴：外面零下20度，屋里零上30度；家家都开窗，人人小背心。但北京不是黑龙江，屋里只有21度。今年又没有下雪，流感肆虐。岳父表态后，我习惯性沉默，检查三岁的孩子已经穿上羽绒服后，自己裹上衣服回屋去了。作为一个能伺候夫人穿袜的南方女婿，和餐桌上动辄骂岳母菜咸了淡了的东北岳父，相处只能说是表面上过得去。双方都是为了孩子，互相忍受。偶尔和天南海北的朋友吐槽，一美国朋友下决心：“我宁可穷三年，也不让老人帮我带孩子。”我心有戚戚焉，但夫人坚决反对：“你去哪里找那么放心的人带孩子？”12月28日（星期四）岳父开始感冒流涕。他懒得一遍一遍去洗手间，拿了孩子的尿不湿放在床边，让鼻涕淌在尿不湿上。我开始尽量让岳父和孩子隔离。但岳父是女儿“最好的朋友”+唯一的巧克力提供者，用东北话说叫岳父是女儿的“仗义”。孩子一发现我们要和她“谈话”，大喊姥爷，流出两滴眼泪，就能迅速反败为胜，绽开胜利的笑容。岳父东北man式喷嚏，瀑布式流鼻涕都是逗孩子的新手段，完全不能制止他们亲密无间。岳母：“吃点感冒药吧”。岳父：“我这身板，没事”。岳母：“打喷嚏你挡着点，别喷到孩子”岳父大怒：“这又没啥病毒”。12月29日（星期五）岳父开始发烧，愿意吃感冒药了。孩子继续跟姥爷粘在一起。我感觉不对了，和夫人商量带孩子出去住酒店。夫人不同意，因为孩子上幼儿园后一直生病，外出怕有病菌。又问能不能岳父岳母出去住。夫人还是不同意，说是爸爸发烧了，需要在家照顾。我问：“感冒会不会传染？夫人答：“我也担心”。“传染”这个词需要定义概念。有人，比如我，认为接近100%会发生。而另一些人，例如我夫人，认为只有20%的概率，而且自己孩子还绝对不在这20%之中。就像我一贯认为发芽的大蒜有毒，每次扔这种大蒜都会引发矛盾，夫人经常嘲笑：“你家宝都已经吃了好久发芽大蒜做的菜了。”我大怒。然后洗洗就睡了。12月30日（星期六）岳父挺不住了，去了通州民营医院甲。为啥会到这个医院呢，因为小孩进幼儿园前到这个小医院体检过。老人觉得位置近，不排队，反正异地医保也报不了多少。东北老国企，现在的医保大概只结算到2014年的。即使批下来的报销额度，也得等几年才能拿到现金。医院验血后开了3天输液，消炎药用的是头孢。输液后，岳父有改善。我当时还和朋友开玩笑：“美国感冒，看个大夫150美金，看完让你回去喝水。中国感冒，看个大夫5元人民币，输液1000人民币。继房价之后，医疗价格也在赶超美国。”后来才发现，这只是个零头。当晚，岳母和孩子中招了。小孩下午开始发烧，晚上嚎了一夜。姥姥晚上带着孩子也没睡好，第二天自己也发烧了。12月31日（星期日）我终于克服了不愿引发矛盾的懦弱心理，一早就问孩子：“带你去动物园好不好？” 准备把小孩和岳父隔离，同时岳母也可以好好休息。岳母舍不得孩子出去。表示外面冷，传染源多。岳父当时感觉不错，和岳母说说：“我输完液开车带你去天津，2小时就到了”。岳母拒绝了，但同意就近入住酒店。老人喜欢游泳，我们给定了有泳池的宾馆。送岳父去输液时，医生强调病人和家人要戴口罩，避免交叉感染。这次岳父总算是听了。这非常重要！！不要小看几分钱一个的医用口罩，全家人戴好遮住口鼻，坚持戴，对于阻断流感非常有效。没有这口罩，我很可能就写不了这篇文章了。夫人淘宝买了300个，开玩笑说可以用一辈子，结果我们用、亲戚用，白天用、晚上用，屋里用、屋外用，20天用完了。当晚孩子发烧被控制住，但姥姥继续发烧。酒店泳池等设施也没用，就是睡。1月1日（星期一）姥姥早上决定也去甲医院输液，我赶到医院付款。老人要在家附近的连锁酒店入住。我觉得酒店条件不行，但老人们认为离家近。房间在酒店一层，老人觉得温度不够，开启了空调加热。当晚岳父就睡的不好，到凌晨才睡着。孩子不再发烧了。1月2日（星期二）岳父三天的输液已经结束，但精神状态明显没有12月31日好。孩子的状态也很奇怪，早上从9点睡到下午1点半。这是此前从未发生过的。岳母输液后有好转。1月3日（星期三）岳父承认病情恶化，不再硬挺了，决定再去甲医院拍X光片。这个医院上次没看好，为什么又去？因为岳父怕进城堵车，先去拍片看看，严重再去大医院。这个做法是不对的！！大医院不仅是设备先进，更重要的是医生经验丰富。（虽然对于岳父这个案例，那时候去大医院也没用。）拍片显示肺部有小部分感染，验血白血球低，心电图基本正常。医院换用阿奇霉素输液。晚上岳父精神略有好转，但继续发烧。不愿意盖被子，裹着大衣躺在床上睡。孩子那天不知咋搞的，非要打一下姥爷再揉揉，被我好好说了一顿。看着嗷嗷大哭的孩子、忧心忡忡的姥姥、吃不下饭的姥爷，我也感到无奈。人到中年，早已没有梦想，只盼着日子简简单单。1月4日（星期四）岳父早上自行驾车去医院输液。晚上我见客户回来，岳母对我说：“你带他去医院做个CT吧，严重就住院。老这样我不放心他，也担心他传染给孩子。”我们匆匆穿衣下楼。女儿还在喊：“姥爷，回来别忘了给我买玉米糖！”回家的路，很短，又很长。二、急诊1月4日（星期四）19点，乙医院赶到离家最近的乙医院做CT。医院大夫听诊后觉得情况严重，化验的结果让她更为不安：1） CT：肺部大面积感染。对比36小时前的X光片，病毒扩散迅猛。2） 咽拭子：甲流、乙流都是阴性。表明没有感染甲流或者乙流。没有阳性，不一定是好事，病人可能感染了未知的强病毒。学医的人一眼就知道这意味着什么，而我要到半个月后，才知道“未知病毒”的残酷。当即要求住院，大夫表示没有床位，而且病情严重，建议去大医院治疗。当时对乙医院还有些意见，现在想起来，识别出严重情况，不耽搁是对的。（事后我们仔细看病历，发现乙医院写的是：“病人自愿要求转院。” 这与事实不符。）于是疯狂的四处打电话，问任何可能和医院有关系的朋友。一通电话打下来，才发现医院不是饭店，出钱也没有床位。流感袭击下，北京呼吸科床位极度紧张，几天能排到就算不错了。一位朋友建议去呼吸科实力很强的朝阳医院看急诊，先把病情稳定住。1月4日（星期四）21点，朝阳医院21点来赶到北京朝阳医院。此前，我一直觉得朝阳医院就是区级医院，没想到这么NB。发热不能直接挂号，要先去护士站。护士一听情况严重，让先去问大夫能不能收治。先到了最靠近心电图间的1号诊室。我们取出CT片，说情况严重，希望他能帮忙安排个床位。这位大夫属于推诿圣手，做医生实在是埋没人才，当年没有考上段子手可惜了。连连摆手说：“我不看片子。不看、不看、我不看！你们今天都输过液了，我也不能给你再输液。明天早上来化验，是否有必要住院等化验结果。”被推诿后很不爽，病人疼的不行，你号都不让挂。我连法院都投诉过，但在医院还是得求着，不能轻举妄动。但也不能听这个混蛋的话回家，坐在急诊区继续给各位朋友打电话找床位。猛然看到2诊室是空的，后一个病人叫号后没有及时进诊室。冲进去又把情况说一遍，2诊室的腾大夫人很好，看了看片子，知道病人情况严重，说：“你们先挂号做心电图吧。”有了腾大夫这句话，松了口气。挂号 — 去护士站量血压 — 量心电图 — 2诊室大夫详细看片问病情 — 开化验单 — 交费 — 抽血。晚上急诊挂号、交费处人之多就不提了。第一次看到抽动脉血，一个细如发丝的针，摸着抽。抽完后24小时不能见水，不能提重物。由于化验结果要2小时候才能取，决定在附近开房睡觉。医院对门就有个宜必思，20平米的房间400多。500米有个酒店，60平米也是400多。我们有车，自然就去了远的那个。后来才理解，近500米的小房间能卖这个价是有原因的。对很多病人来说，多走1米都是负担。1月5日（星期五）凌晨，朝阳医院0点，我和岳父回到朝阳医院。一项检测结果在ICU取，第一次看到ICU，看到门口目光黯淡的家属，没想到隔两天我就成了他们的一员。腾大夫看了化验结果使用莫西沙星、多索茶碱、甲泼尼龙、阿昔洛韦等药品输液，并配合吸氧。我当时对吸氧很不理解：“感冒为啥要吸氧？”后面才理解：1）感冒只是个撬锁贼，把人体免疫系统的大门打开。2）肺炎这个强盗紧跟着冲了进来，把肺部撕的面目全非。3）肺功能被削弱。呼吸正常的空气，已经不能提供足够的氧气。4）吸入纯氧，功能受损的肺才能给人体提供最低限度的氧气。原预期3小时输完，我也和岳父说了不要着急，但岳父已经很疲倦了，着急回酒店躺下休息。他自行调节，1小时就输完了。凌晨的输液区还有不少老人孩子在输液，仿佛魔鬼就在这里游荡，人的精气神都被吸干了。准备回酒店时，护士说离开医院需要大夫批准。夜班值班大夫听了诉求，看了看病历，又看了看我。我再看了看大夫，大夫再看了看我，啥也没说。我说了声谢谢，回去和护士说大夫已经同意了。1月5日（星期五）上午，朝阳医院在酒店睡了5个小时，早上7点半起床赶往医院，等待8点钟医生查房并可能安排住院。此时犯了个错误，岳父执意要走过去，我们也按惯性顺从。但都要吸氧的人了，肺部随时可能不能提供足够氧气，走路是非常危险的。病人不能认为没事，亲人也不应该掉以轻心。吃不准的情况下，越保守越好。岳父到了输液区开始吸氧。焦急无奈等到9点，医生开始巡查病区。我们询问是否可能安排住院，大夫表示要10:30左右才能知道是否有床位。岳父坐在椅子上已经很难坚持了。此时朋友帮我们在丁医院（朝阳医院是本文的丙医院）联系上一个床位，预计有病人下午1点出院。我们决定转到丁医院，理由是：1）丁医院有朋友，一些小事容易协调。2）朝阳医院床位很紧张，输液区外面还有几个白发苍苍的老人躺在移动病床上等床位，当天估计排不到。当时没有考虑到一个很重要的问题：丁医院虽然也是三级甲等，但呼吸科并不突出。我们对岳父的病症估计还是太乐观了：北京的三甲医院，还治不好感冒？告诉朝阳医院的大夫讲了要转到丁医院，大夫很尽责的问为什么，要我们确定好床位，建议我们使用救护车。我们仍然没有意识到严重性，不但没使用救护车，岳父还和我再走了500米，10点回到酒店。在酒店躺在床上休息，原定休息到12点再去丁医院。但岳父在11点就哼哼，我问岳父感觉如何，岳父表示“还可以”。一个硬老汉说“还可以”，和女人说“你看着办”差不多，都不是什么好消息。三、住院1月5日（星期五）中午 纯电动车已经快没电了，叫了首汽约车前往丁医院。到院后，前一位病人已经办完出院手续，但没有要走的意思，还在和病友聊天。也没办法，继续等待。岳父趴在朋友办公室休息，勉强喝了点粥。下午1点，在朋友帮助下如期躺在了病床上，觉得放心了。呼吸内科心电监护仪全部占满了，朋友帮忙从别的科室借了一台仪器用于监测岳父。我心里还想：“有问题喊一声护士不就行了？”手续办完，护士开始抽血，刚准备抽动脉时，岳父情形激动：“早上刚抽完，化验结果你们都有，怎么又抽动脉血？”把小护士吓傻了，赶忙道歉，说：“我去问问大夫，看是否可以不抽动脉血。”看来，抽动脉血应该是极疼的。都住进三甲医院了，我也安心了，开始继续筹划4天后前往拉斯维加斯参观CES消费电子展。1月5日（星期五）下午 14点30分大夫把我叫出病房面谈。大夫：“从你们的片子来看，肺部病毒扩散很快。如果病情急转直下，变成‘大白肺’，需要上有创呼吸机支持。我们院ICU（重症监护室）只有6个床位，我不能保证你们有床位。”我心里琢磨，这是“股市有风险，投资需谨慎”的惯常风险提示吗？再请教大夫：“感冒这么严重啊？”大夫一听这问题，就知道我是个小白。回答说：“你知道SARS吧，所有人都知道是病毒性肺炎，但没有针对性药品，其他抗生素再怎么加大剂量也无效。现在你岳父也被未知病毒感染了，扩散很快。除了甲流乙流等常见病毒，大部分病毒都没有特效药。最终需要病人自己的免疫系统发挥功能，击败病毒。现在病毒凶猛，如果在病毒自限之前，肺部不能支持呼吸，就需要上呼吸机。”问大夫：“您有啥建议吗？”大夫说：“你们问问，看能否转到朝阳医院或者协和医院吧。”我一听晕倒，早上从朝阳医院出来就是因为挤不上床位。昨晚协和医院也请朋友问过，全国多少政商高层关系在盯着，根本没法安排。厚着脸皮再问：“这两个医院的床位都找过人，没办法。您的意思是预先联系这两个医院的ICU吗？”这又是一个外行的问题，大夫只好说：“大医院的ICU床位比普通床位紧张得多。我只是说了一种可能的情形，我们大夫和家属一样，希望病人迅速好转。但你们和我们都要做好准备。”谈话结束后，和夫人电话沟通。我们偏向于大夫是按惯例进行风险提示，也没太在意，但夫人让我取消美国行程。开始退机票、退酒店、退电话卡、退保险，答应帮朋友办的一些事情也办不到了，一一联系解释。1月5日（星期五）下午 17点大夫给了我一张处方，让我去别的医院买“达菲”。我奇怪了：“三甲医院没有达菲？”大夫说：“我这里没有。周围几个三甲你可以试试，朝阳医院肯定有。你运气还算不错的，北京紧急调了一批货源。前段时间，要是不够级别，全北京你都找不到一盒。”于是先到周边的A医院，急诊药房帅哥一听达菲，说可能开完了。帮我查了急诊药房没有，还电话问了门诊药房，也没有了。最后还给我个电话，说下次可以先打电话问。态度真是好！出来看到一个药房。小哥回答我说：“没这药。我们一直没卖过，不知销量如何。”转头和另一个人说：“最近问这个药的人不少啊，我们进点试试？”下一站直奔朝阳医院。开药先要挂号，但我没发烧，护士不让我挂号。只能又冲进去找大夫，说早上才从朝阳医院转出的，求开一盒。大夫问：“为啥转出？”我答：“朋友联系了个床位。”大夫说：“哟，这么快有个床位。去挂号吧”。于是挂号，排队，开药，缴费，取药。220一盒达菲，70元挂号费。想多开些，朝阳医院不同意，自己的病人都不够用。晚9点离开丁医院回家，到通州已近11点。从前一日6点出门，已忙乱了28小时。家里岳母眼睛通红，夫人自己担心不提，又安慰了会岳母。我只问了一个问题：“小孩有没有发烧？”1月6日（星期六）夫人一早赶往医院,让我在家睡觉。10点给我电话，说大量输液情况下高烧不退，最高39度。另一位大夫再次讲述了要做好转院进ICU准备，并要求24小时陪护。于是：1）从老家请两位亲戚过来照顾。我们下周还要上班，24小时监护肯定扛不住。定机票时，发现佳木斯飞北京的航班，当天头等舱都没剩，后一天余下2个头等舱，还好鸡西飞北京有经济舱全价。东北富豪的消费能力和惨不忍睹的群众生活形成鲜明对比。2）联系人转朝阳医院、协和医院。朋友们都很帮忙，但确实没法操作。下午6点，赶到丁医院换班。发现昨晚我整理的东西被动过，充电宝等都从柜子里挪到包里。夫人没有动过，只能是岳父在呼吸困难、动脉被扎了2针的情况下亲自动手了。其难度，相当于在拉萨有高原反应的情况下，用带伤的手抬石头。我把包挪到了岳父够不着的地方，让他有事叫我。大夫安排一小时测一次体温，记录所有“出量”，即大小便量。当晚，岳父的尿量少。一次少只有20ml，多不过50ml，医生担心肾部也感染了。医生又和我谈了一遍。常识认为病毒性肺炎致死率不高，但实际上病毒性肺炎会引起很多并发症，最终死因归于其他病症，病人和家属都不能对病毒性肺炎掉以轻心。21点体温38.5度，医生说病房没有盐水不能输液了，先用些退烧药。服药后，体温降低到37.4度。岳父服药后出汗，不愿意盖被子，被查房医生制止后依然不服气。医生走后，岳父要求脱掉上衣裸睡，被我拒绝。1月7日（星期日）5点，岳父下床洗脸，我们拔了监控仪器，很快大夫就冲了进来，说是系统报警没心跳了。7点，各种外卖都没上班。在医院旁边买了粥和包子，岳父胃口明显好转，体温稳定在37度左右。我们松了一口气。9点，夫人过来换班。岳父和孩子微信视频了会，告诫孩子要听话，多穿衣服不要感冒。孩子问：“姥爷打完吊针就能回家吗？”老家的亲戚也已从东北起飞。我到旁边酒店开了个房，睡了2个小时。11点，回到病房。夫人说：“隔壁病房的刚才心脏骤停，送ICU了。”心头一惊，问出事前病人是否高声喊疼？“没有，又不是拍电影。病人的几个家属一起出去吃饭了。隔壁床忽然发现监控仪上心跳没了，以为是仪器坏了，想和病人说，却发现病人双目紧闭。隔壁床大喊，大夫也从监控中发现了，瞬时一群人冲进病房。昨晚负责岳父病房的大夫，本来9点就可以走，刚准备下班，又进ICU看病人了。”当时就感叹：1）有朋友还是好，能从别的科室借个心电监控仪。没有监控仪，即使有空床医生都不敢收岳父这样的重病人。2）不能让孩子学医。二姑二姑父来到达医院，我们万般感谢，交代了相关事宜。特别强调他们自己要24小时带口罩，遮住口鼻，注意轮换休息，吃我们准备的水果和预防性药品，做好持久战的准备。亲戚回答：“不当害”。作为黑龙江女婿，我现在真是怕了东北人说“不当害”。这句话可以翻译为：“没事，看大爷我的。”于是发挥脸皮厚的特长，又说了两遍。岳父和二姑父很熟，被照顾时很自然。我在照顾时，小便他都挣扎着要站起来。二姑父照顾时，他愿意躺在床上小便。把亲戚拉进了微信“情况检测群”，请他记录尿量、体温等信息，发到群里，例如“22:30，尿20”。我们容易看，医生问情况也能够完备的提供。回到家，根据医生的要求，人洗澡、所有衣服全洗、包等物品全部用消毒液擦一遍。毕竟是呼吸科重症患者，传染上孩子可麻烦了。晚上头晕无力，吃下一片白加黑，心想现在可不能倒下。1月8日（星期一）上午 丁医院睡了一觉，爬起来联系了几个客户。亲戚反馈的消息还不错，一整天没发烧，早上胃口也很好。11点夫人来电话，告知早上彩超的结果很不好。一线抗生素都用了，但病毒没有控制住，继续扩散，整个肺都已经被病毒占据。普通的鼻导管供3升氧量已经不能支撑，开始用面罩吸氧，开到10升的氧量，勉强将血氧量维持在90。丁医院大夫集体讨论后，考虑到昨天隔壁病房心脏骤停的案例，正式建议我们转院，而且要求直接进ICU。丁医院呼吸科主任很尽责，亲自帮忙问了朝阳医院等多个机构，但ICU全满。最后联系上全国知名的戊医院，正好下午能空出2个ICU床位。主任在联系时特别强调了“家属配合”，看来我们在医院的表现还可以。千言万语道不尽谢！ICU确定后联系120，说明要带氧气。120来了4位员工，负责人和开车的小哥都是北京人，特别幽默，一路上气氛不那么压抑。6公里，车费、维护费、器材费等共计800元。岳父的情绪开始不稳定。早上他可能自认为没几天就出院了，现在听到要转院，大夫都把家属叫出病房去说情况，预感不好。他拒绝带氧气面罩，要重新换成鼻导管吸氧，好说歹说又给带回去了。四、ICU1月8日（星期一）下午 戊医院一到戊医院，直接送进ICU。护士一声令下脱光，所有衣服都给扒了扔出ICU。岳父当场没了脾气，乖乖听话。ICU不让家属进，每天只有下午半小时探视时间。我晚上赶到的时候，夫人说ICU条件很好，见过的医院只有美国治疗埃博拉患者时用的埃默里大学医学院（Emory University Hospital）能匹敌。每个病人都专门有护士24小时看护，医护人员数大概是患者人数的4倍。无创呼吸机已经上了，血氧量回到90以上。而且有创呼吸机、人工肺（ECMO）都有，万一病情恶化，人应该也能抢救回来。报完喜，自然就该说“但是”了。她签了一大堆文件，各种治疗手段，看了脊柱都发凉。虽然大夫反复表示非必要不使用，但人肯定要遭不少罪。此外，ICU的费用大概是每日8000-20000元，我们要努力挣钱。我马上表决心：白天投资茅台，晚上杠杆炒币。1月8日（星期一）晚上 岳父2年前借给当地“知名土豪”SB哥10万元，当时说好周转一下2周还，然而2年也没见过钱的影子。岳母和我们虽然知道，一直也没敢当着岳父面提，生怕他一激动出问题。现在人已经进ICU了，缺的就是钱，赶紧请对方还款。这个SB听到消息心里面乐开了花，巴不得岳父早点走。回答很干脆：“没钱！”珍爱生命，远离土豪。1月8日（星期一）晚上 从医院回家后，在下面给车充电折腾了会，进门一看夫人正在和孩子玩，竟然没有洗澡。忙问洗手洗脸了吗？答洗手了，没洗脸，因为回来就换了个口罩（在医院用的口罩在家不能用）。我马上要求：先洗澡，才准接触孩子。严格执行！过了一会，孩子忽然开始咳嗽了。我无比紧张，万一传染上可咋办。后来夫人和岳母说她们的压力更大，要是孩子传染上，不知道我会怎样发神经。1月9日（星期二） 早上起来，孩子没有发烧，白天也没太咳嗽。大家都松了一口气。夫人脸色不佳。说一晚没睡，身体上很困，心里很焦虑。不知道病啥时候好，不知道要花多少钱，感觉分裂成两个人。我嘻嘻哈哈安慰了会。岳母在下午探视时段进了ICU。岳父精神奕奕，向岳母表示：“我这身板没问题”。岳母表示她代表全家，相信岳父的身体，相信岳父能够在ICU病友中第一个转到普通病房，在所有病友中第一个回家。晚上回到家，岳母问我们：“为啥他现在还那么得瑟？”我马上表态：“得瑟是好事，说明正在全面恢复！”饭后，夫人讲起ICU外面有位大姐，不仅熟悉办饭卡、为陪护租折叠床、隔尿垫品牌等杂务，而且精通北京呼吸科的疑难病例、名医趣事、治疗程序、术后护理等。说是北京知名的呼吸科“明星护工”，肺移植病人常常要等她的档期，才能约上。1月10日（星期三） 岳父在ICU的8个病房中，被从较大的病房转移到最小的病房，体温和血氧指标也相对平稳。探视时，岳父还抱怨医院的饭菜不好吃。我晚上很乐观的给岳母解读：“最小的ICU病房空间不大大夫在那里给他做手术很不方便。把他移到那个房间，估计是大夫认为他恢复不错，没有手术必要。”又说了A病房的情况。病人进入ICU时已经插管了，一根管子从嘴里插到肺部，直接提供氧气。今天上午大夫建议A病房上人工肺，由于后续开销大，家属没有马上同意，而是四处打听，得到的信息不乐观：1） 效果不好说。当然有治好的，更多是没有治好的。2） ICU有位30多岁的大夫，抢救病人时被传染上肺炎。最终上了人工肺也没能救回来。最终，A病房决定只插管，不上人工肺。夫人说：“如果爸爸真到那一步。即使知道大概率没用，只要有1%的希望，我也得上啊。不花这钱，我余下一辈子都不会心安的。”五、插管1月11日（星期四） 下午下午3点，刚和客户微信组群聊完，夫人急电：“今天拍片结果还是不好。医生决定插管。插管后会注射镇静剂，人就不能说话了，你赶快送姥姥到医院来，我让医生务必等着。”姥姥正陪着沉睡的女儿，马上手忙脚乱的穿衣服，问我说：“你昨天不是说有好转吗，咋要插管了？”我无言以对，只能说：“我开车带你和女儿去医院。到了医院让二姑下来在车里看着女儿。”姥姥：“不行，孩子不能去医院。”于是用首汽约车叫了个车。姥姥跌跌撞撞冲出门时还惦记着孩子：“你给她熬个粥，蒸个鸡蛋。”一进ICU，姥姥哭着对姥爷说：“我没照顾好你，你不怪我吧。”姥爷告诉了手机、银行卡、股票账户的密码，但也不想增加家人的心里负担，没有当做临终时刻来对待。夫人有不好的预感，强忍着悲伤问姥爷：“爸，你还有什么要说的吗？”岳父停了些许，费力的说：“继续治吧”。人的一生，谁会知道自己最后一句说的是什么？（插管说明病已经很重了，但医护人员不会、也不适合提示病人留遗言。万一不幸走到那一步，建议家属和病人珍惜机会，我们希望这不是最后一次，但谁又知道呢？）1月11日（星期四） 晚上插管结束，岳母在医院附近住下，夫人准备挤地铁回家。我觉得她情绪不稳，叫了个首汽接她回来。晚上，夫人先通知了岳父的4位兄弟姐妹，告知病情，让老家人也有个心理准备。再通知了岳母的6位兄弟姐妹，两个姨马上表示到北京支持我们，帮忙看孩子。我们讨论了一直回避的三个问题：1） 病情直到现在，都查不出被什么病菌感染了。体温总体来说不算高，人的精神也不错，就是每次拍片肺部都是急剧恶化，没有一点好转。每个医院都反复问肺部以前是否有过病症，一遍一遍的说没有，医生一遍一遍的问，看来肺部异常恶化，情况很不乐观。2） 术后大夫说如果救回来，最坏的情况需要长期卧床吸氧，好的情况能够大小便日常生活自理，但肯定不能做体力劳动，也不能出去玩了。好的情况可以接受。如果需要长期卧床吸氧，岳父自己很痛苦，岳母后半辈子护理的压力很大，我们也不可能做重大的改变。3） 费用。插管后ICU的费用直线上升。预计插管能顶72小时，如果还不行，就要上人工肺了。人工肺开机费6万，随后每天2万起。我们估算了下，家里所有的理财（还好没有买30天以上期限的产品）、股票卖掉，再加上岳父岳母留下来养老的钱，理想情况下能撑30-40天。那么40天以后呢？要准备卖房吗？夫人沉默良久，说：“先卖东北的房子吧。爸爸恢复了也不能上6楼了。”我：“老家房子短期卖不掉，卖掉也就撑个十几天。如果在ICU要呆很长时间，只能卖掉北京的房子。”夫人：“如果ICU住了50天都出不来，可能真就不行了。”说完嚎啕大哭：“他才60岁啊，刚办完退休手续，啥福也没享。要是像爷爷奶奶那样90岁了，我也不给他上这些折磨人的东西了。但一个感冒就走了，我不甘心啊！”六、人工肺（ECMO）1月12日（星期五） 上午11点我还在写工作规划，岳母在医院急电：“今早拍片结果还是不行，医生准备上人工肺。我也没啥主意了，你们啥意见？”预计顶72小时的插管治疗方案，只坚持了不到17小时。昨晚受到重大冲击，根本没来得及看人工肺的信息。我问：“大夫有说治愈概率，以及愈后预期恢复情况吗？”岳母说：“没有啊。就说10分钟以后听我们回话。”我从不怀疑戊医院大夫、特别是ICU大夫的仁心仁术；医院在核心地段建的如此豪华，也不会为了钱增加病人开销。但给我的信息太少、决策时间太紧，作为家属确实是难以接受。夫人作为女儿肯定是要上的，我原则上也不反对。但有两个后果要考虑：1） 家庭抗冲击能力。如果钱花光，女儿、夫人、岳母和我自己以后就扛不住任何的冲击，再有人生病，ICU的门都进不去。2） 愈后情况。如果救回来要卧床吸氧，对岳父的生命意味着什么、对岳母的生活意味着什么、对我们和孩子意味着什么？夫人麻烦了丁医院的朋友，再让他去问呼吸科大夫。回话说：“当时建议转到戊医院，就是为了上人工肺，条件许可情况下最好接受治疗。”我紧急电话一位医疗创业的前同事，虽然久未联系，他作为创始人也非常忙，听了诉求，立马帮助我。首先给出的建议就是：“信息不足的情况下，听医生的。”咨询后，他又发了一个截图给我：人工肺，医学上叫体外膜肺，叶克膜，呼吸科ICU终端救命神器。总共约25分钟，期间岳母又催了一次，说是情况已经很危急了。我尽量让自己不那么冷血的告诉岳母：“再等等。”既然都建议上，经济条件也能接受，我们决定上人工肺进行治疗。其实，我们都没有考虑一个重要的因素：岳父自己是怎么想的？如果有人要给你“刮骨疗毒”，刮骨很疼，疗毒的治愈率很低，你让他刮吗？1月12日（星期五） 下午带着口罩见完客户后，赶在探视时段最后几分钟进了ICU。岳父从小病房移到了大病房，全身上下都是管子。脑后、右手、大腿侧有手指粗的管子导出血液。血浆、营养液、消炎药品等四五个瓶子，通过不同的导管从身体各处不间断的注入。护士在严密的监控各项指标，十几分钟就要加注一些药剂。岳母没有勇气去揭开被子，估计下面也全是管子。岳父已被镇静，任何的自主动作都可能导致血管和人工肺的连接被断开。只有监控仪上的心电图，表明生命的迹象。探视后，我等着医生交流病情。主治大夫开会忙没时间，负责本床的住院医师和我进行了沟通。本人：“请问治愈的概率？”住院医师：“不好说，看病人情况。如果是做心脏手术，只是术后短期需要人工肺支持的，概率会高些。如果病人体质较好，治愈的概率也大些。”本人：“贵院此前大概做了治愈概率？”住院医师：“我是轮岗到这个科室的，这个情况不清楚。对病人来说，概率意义不大，关键是个人能不能救回来。”本人：“病人目前情况如何？”住院医师：“不太好，他前后经历5个医院，现在感染上了医院的一些耐药细菌。我们已经给他上了最强的抗生素——万古霉素，但还是在恶化。”本人：“请问治愈的病人，术后生活基本能自理吗？”住院医师：“每个病人都不同。有些病人能够生活自理，也有病人需要卧床吸氧，不巧感冒引起感染，又送回ICU的。”1月13日（星期六） 上午从医院得到的信息缺乏数字，只能自己挖掘信息了。人工肺，英文Extra-Corporeal Membrane Oxygenation，缩写为ECMO。顾名思义，就是将血液导出，由机器在体外代替肺的功能，将氧气交换到血液中，然后再输回人体。开始用于心脏手术，非典后我国也逐步开始用于支持危重呼吸病人的生命。现任台北市长柯文哲（柯P）最初名声大噪，就是因为他在台大医学院期间使用ECMO，将心脏功能丧失的病人生命维系了16天，然后进行心脏移植救活。ECMO本身并不消灭肺部病毒和细菌。医生的方案是用“焦土政策”与病魔对抗。举例来说，蝗虫扫过农田时寸草不生，但草没了，蝗虫也随之死亡。现在肺部的病毒就像蝗虫，肺部肌体就像农田，治疗战略是让病毒侵蚀，等肺部都被占满了，病毒也就死了，医学上叫“自限”。等病毒死了，ECMO依然维系着患者的生命，然后肺部慢慢恢复，逐渐能够给其他器官供给氧气。接受ECMO治疗的患者，存活概率大约30%。（数据来源：《名医人文观•侯晓彤|人命到底值多少钱？一位ECMO医生的困惑》，http://www.sohu.com/a/121900683_377350）治愈的患者在ICU最短4天。（数据来源：《名医人文观•侯晓彤|人命到底值多少钱？一位ECMO医生的困惑》，http://www.sohu.com/a/121900683_377350）。治愈的患者在ICU最长122天。（数据来源：《记录中日医院百例ECMO时刻，回顾过去，展望2018》，http://www.sohu.com/a/214085311_655772）术后病人有能够生活自理的，但网页上翻来覆去就是那几个案例。我估计在存活病人中约占10-25%。也就是说，活下来且能够生活自理的概率：3-7.5%。晚上梦到一个精灵跳出来和我打赌。1） 我下注50万元，输了这50万元归精灵。2） 我赢的概率是5%，输的概率是95%。3） 精灵问：赢了给你多少万，你才愿意接受这个赌注？4） 我回答：如果赢了有1个亿，我马上下注；如果赢了只给100万，你马上滚蛋。5） 精灵又问：如果赢了，能把亲人救回来呢？七、求血1月13日（星期六） 中午接大夫通知，要求组织献血。我又是一脸懵逼：献多少、在哪里献、怎么认定是我献的？问ICU护士，护士不知道；去问大夫，大夫也不知道；让我们去问输血科。到了输血科，搞清楚了：1） 不是花钱就可以在医院买到血。2） 病人需要用血时，需要亲友去献血，以维持血库的血量。3） 个人此前的献血证，只能用于直系亲属，即：配偶、父母、子女。也就是说，夫人的献血证可以用于岳父，我作为女婿的献血证不可以。4） 血液科开出一页纸的《北京市互助献血申请书》，该申请书上有岳父的名字。5） 到指定的献血车献血，不在医院献血。医院推荐了两个献血点，后来又放宽说是通州血液中心的献血车都可以。6） 由于缺A型血，献血人必须献A型血，标注“专血专用”。但并不表示你组织的人献的血，就一定用于指定病人，由血液中心同意调度。7） 后来几天A型血不缺了，可以献其他血型，标注“血型调配”。8） 每200CC献血，只能有100CC血浆。9） 献血人需要携带本人的身份证或者驾照、医保卡。10）献血后，工作人员会提供一个献血证。我们需要将献血证拿回戊医院献血科，献血科盖章表明此证已用，同时为岳父增加用血额度。11） 献血证下次还可以用于献血人的直系亲属。1月13日（星期六） 下午看了下我家这几个人，两个高度近视，余下几位都年近60，而且近期人也很疲惫，献血后出现意外更麻烦。病区就有人报价提供血，1000元人民币100cc。一方面觉得贵，另一方面不确定是否靠谱，决定自己求。先问在学校任课的老师，有没有学生愿意献血，200ml我们补贴1500元营养费。老师说：学生都放假回家了。接下来发动各种关系。特别感谢如下人士的支持：1） 外甥单位领导。看到外甥发出的消息后，转发全公司，删除了我们补贴营养费的信息，改为公司补贴。而且领导还亲自为我们献血，非常感谢！2） 外甥单位的同事。可爱的北京女孩，一听说需要用血，穿着睡衣裹上羽绒服就出门了，自费打车来回，没要我们一分钱。3） 同学单位的同事。一听消息，不等孩子爸爸回家，就带着孩子出门来献血，不要钱。4） 三位同学。看到夫人在天津读书的堂妹发出的朋友圈后，一位从南城坐车1.5小时，另两位从天津赶到北京献血。5） 四面八方前来支援我们的朋友！一半献爱心的朋友都抱怨献血车工作人员态度恶劣。为了我们，你们受委屈了，对不起！我自己的经历也是如此，上了一辆献血车，就想确认献血额度，马上被轰了下去。献血车严禁拍摄朋友签字后的《北京市互助献血申请书》，原因不明。当天拿下2000cc血，心想80公斤的人总共约6400cc血，应该够用了吧。献血证送到血液科后，告知ICU有了额度，马上提走600cc血浆，相当于1200cc血。我和夫人一愣，费了老大劲，不够2天用。ICU解释：人工肺在体外氧和过程中，会导致凝血因子的变化。凝血因子用于修补血管上的微小创伤，手指刺破了，血液会凝固堵住出血处，而不会失血过多，就是凝血因子的功劳。凝血因子本身又有多个子因子，用药物不好调整。如果凝血因子过多，会出现血栓。如果凝血因子过少，会出现脑溢血。所以，需要不停的用大量人的血浆调整凝血因子。1月13日（星期六） 傍晚夫人在QQ上输入了“互助献血”，出现互助献血群。加群后，马上有人加好友沟通。再打了几个电话，给两处献血车旁发小卡片的人。结果都是：1500元人民币400cc。这是“物价局”统一定价吗？ 对这些人，献血车工作人员的态度应该不错吧。1月13日（星期六）晚上回到家，女儿坏笑着走过来，急忙制止她，在我洗完澡洗完衣服前不能和我接触。“X你妈，哈哈哈”女儿大笑。我一愣，这是咋回事？姥姥急忙制止女儿：“不准说，听到没，不准说！”“X你妈，哈哈哈”姥姥解释说：“下午她要吃豆沙包，蒸好后又要吃奶黄包。我心急骂了一句，她就记住了。”我只能苦笑，全家都乱套了。八、传染1月14日（星期日） 上午凌晨，我开始连续咳嗽。4点，服用蒲地蓝和消炎药后未有缓解。8点，一阵剧烈咳嗽，感到胸痛。心想：完蛋了，这不是被传染了吧！？没敢告诉岳母，偷偷和夫人说了一声，匆匆出家门前往己医院。（为什么不去戊医院？这是个好问题。）常有鸡汤，劝人要像最后一日那样生活。纯TMD扯蛋，最后一日你只想诅咒这个世界，你只想问老天爷：“为什么是我？？”回想自己的一生，有不少的遗憾，但也算够本。头脑里闪过人生的片段：1）小时候被打得丧失信念。2）读金庸小说。3）少年时一次考试后春风得意。4）被本科学校录取时的沮丧。5）研究生被梦想大学录取时的兴奋。6）领会了理论为什么不真实。7）研三和BG一伙吃喝玩乐。8）被拒绝与无心的伤害。9）工作后和相亲小组打牌消磨。10）大峡谷、黄石、布莱斯峡谷、纪念碑谷地。11） 结婚。12）工作时看到产品规模从零飙到几百亿。13）看着女儿出生。14）一次连续偶然导致的危险驾车。15）读巴菲特理解复利。16）这一次ICU经历。回想自己一生胆小，要是因为别人的勇气就这么给挂了，实在心有不甘。想起外甥说过一句：“我觉得妹妹好可怜。”我一惊：“为啥？”外甥：“她还没长大，你就老了。”妈妈还有姐姐照顾，最放心不下的还是女儿。夫人买房英明，其他事情都大大咧咧，干啥都是“不当害、不当害”。万一挂了，保险能陪个几百万。委托大徐和朋友们帮孩子理下财，既相信他们的人品，也相信他们的投资能力，免得让钱宝、各种币、高息借贷给祸害了。只要能抵抗通货膨胀，孩子成年就好了。夫人叨叨：“从你到这个小公司后，我们就加买了保险，3百万保额，钱你不用担心。”我很坚决的说：“绝对不要给我上人工肺！！那TMD都不知道是你爱我，还是你恨我。”夫人在后座一边哭，一边说：“我给你买过保险了，买保险的人一般都不会有大病。”我问：“当初为什么没有给爸爸买一份？”夫人：“他的医保卡给爷爷奶奶开过药，保险公司出险后很可能拒赔，所以就没买。早知道。。。”我想了想：“你给姥姥和宝宝都买份保险吧，现在就买。”1月14日（星期日） 中午挂了急诊，和大夫讲明可能被呼吸科ICU病人传染了。大夫问：“甲流、乙流？”我说：“不知道啥病毒。血、肺泡、胸腔积液的所有检查都是阴性，但几天就变成大白肺了。”大夫把口罩好好稳了稳，确认遮住了鼻子，开下检查：CT胸部平扫、验血、咽拭子。还好，一切正常。走出来，冬日的太阳都是那么和煦温柔。九、生机1月15日（星期一） 亲戚发来老家的《异地医保报销申请单》，里面有一项是所在地居委会或者派出所盖章，证明申请人在异地居住。先去了居委会，开始一切顺利，但在一处卡住了。《申请单》上写的是“经办人章”，我请经办小姐姐签字。经办小姐姐表示：“这里写的是章，如果是‘经办人’，或者是‘经办人签字’，我马上给你签。我们按规定就是没有人名章的。我是为你好，你要是拿回去用不了，还不是耽误你的事。”我反复强调没事的，有样本，经办人就是不同意。磨叽了十分钟，经办人建议去旁边派出所，派出所的人员都有人名章。到了派出所，派出所表示不属职责范围，不盖章，建议去旁边社保中心。到了社保中心，工作人员表示证明居住不属职责范围，建议去旁边街道办事处。街道办事处没说不属职责范围，但要求黑龙江先盖章或者出个申请函。出来吹了会冷风，琢磨下还是居委会难度最小。于是走进居委会，摘下口罩，说明岳父得了SARS般凶猛的流感，在ICU生死未知，然后干咳几声。屋内一片死寂，然后两位小姐姐突然也开始咳嗽了。经办小姐姐犹豫了一下，突然也觉得喉咙发痒，咳嗽几声，接过去签了字。1月16日（星期二） 下午夫人打电话，说拍片结果有好转。从发病以来，每次拍片结果都是恶化，总算看到一点病毒自限的曙光夫人说住院大夫心情也有好转，探视时她一进去大夫就过来交流，讲了差不多半小时。此前，大夫讲3分钟冰冷的事实，就会主动离开，避开家属绝望的目光。大夫预计明天做CT。由于上了人工肺后，做CT远比拍片复杂，需要将病人移出ICU才能做，我们认为这是一个非常积极的信号，说明有好转迹象，大夫需要做CT验证。1月16日（星期二） 晚上一个重度垂直的呼吸科微信公众号，当晚发了一个长达2小时的视频。点开一看，戊医院的顶级专家分析病例，而病例居然就是岳父。难得有机会，听专家讲家人的病情。父女情深，夫人听了几分钟就听不下去了，叮嘱我不要发给岳母。我们解读，专家不会选一个大概率救不回来的病例。同期送进去几个病人，每人病情都很重。专家把岳父作为病例，很可能是因为岳父虽然病重，但能够救回来。戊医院啥都好，但大夫和家属沟通可以提高。几十万的开销对于医院不算啥，对于一般家庭却不是小数目。作为消费者，我们得到的信息极其有限，就是每天5分钟的交流。夫人经常让我找人打通关系，详细问问情况，但找不到对的路子。只能感慨：不当官，钱有毛用。ICU的医生确实很辛苦。岳母是地级市小医院的护士，看了就感慨北京大医院不好干。医生护士从早忙到晚，中午吃盒饭。面对的都是疑难危重病人，家属情绪急切而绝望。如果要把病因、病理、治疗方案每天给家属细致讲一遍，那病床上躺的人怎么办？而且，家属最关心的问题：“人救回来的概率，救回来的状况，救回来的时间”，就像一个投资人问你：“上证指数重回高点的概率，涨到那以后的走势，什么时候涨到那个点位”，不好回答。而且大概率答案是提问者绝对不想听到的。不过，每天交流5分钟实在是太短了。视频显示科室主任、全国知名专家花了很多心血，治疗方案也考虑了多种情况。把这些信息告诉家属，有必要，而且不增加成本。1月17日（星期三） 中午岳父的弟弟和妹妹赶到北京。我讲了病因病情，提到前几天A病房的病人走了。他们完全无法理解：“北京就治不好感冒？”这不是多喝水、多睡觉就能好的病吗？我想起以前看到的“西班牙流感”。1918年大流感，是第一次全球范围的传染，死亡估计超过2000万人。该流感由美国堪萨斯州一个流感疫区的青年人参军带到兵营，先是在美国各兵营传播，然后随着美军参加第一次世界大战，扩散到欧洲。在传染西班牙国王后，该流感有了他的名字：西班牙流感（Spanish Flu）。潜伏在一战各国伤员和轮换士兵身上，流感从欧洲扩散到大洋洲、亚洲、南美洲。在我国，当时重庆是重病区，据说“半个重庆都病倒了”。那场流感的平均致死率约为2.5%-5%，而一般流感“只有”0.1%。整整100年，科技发生了翻天覆地的变化，有了原子弹、互联网，现在AI、区块链都出现了，但还是治不好流感。1月17日（星期三） 晚上夫人说B病房的病人突发脑溢血，大夫让转回小医院“静候”，否则每天在ICU也是烧钱。B家属社会能力很强，居然几个小时就找到一位脑科专家到ICU查看了病情。但脑科专家也建议放弃，当天B家就转走了。我心想：“这要是让我们转院，去哪里找关系呢？”1月17日（星期三） 晚上岳母说，如果需要做非常艰难的决定，她去和医生说。我表示自己也可以。夫人偷偷和我说：“妈妈是怕决定不再救治，爸爸会不开心。万一有啥事，她帮我们来承担。”我说：“我知道，但爸爸也不会对我怎么样的。妈妈有心因性心脏不适，在那种极端情况下，她自己能否挺住都不好说。”1月18日（星期四） 中午岳母的两个妹妹赶到北京支援我们，帮我们看孩子。我们非常感谢。也提醒她们在家也要戴口罩，开始她们并不愿意，我反复跟她们讲：“我们天天泡呼吸科ICU，不是怕你们传染给我们，而是怕我们传染给你们！”再配上岳父全身管线图片，她们也就不再坚持了。有她们来好多了。这三周孩子都没有下过楼，天天在家看《小猪佩奇》。以前一天只能看两集，现在一天能把所有剧集看两遍。有一天，女儿突然说：“我看不清了。”我们吓傻了，心想不是近视了吧。还好第二天带她下楼，她还可以看到天上的飞机。1月18日（星期四） 晚上夫人说岳父的弟弟、妹妹下午去ICU探视时，明显感到岳父情绪激动，努力眨眼睛想要和他们说话。监控当即显示心跳加快、呼吸频率飙升，医生赶忙加大的镇静剂量，并让亲属离开病房。我非常诧异，岳父是有知觉的？他镇静后不是应该没知觉吗？夫人说：“你不知道C病房的事？把大家都吓坏了。”C病房上了人工肺之后效果不错，肺部有明显恢复。医生决定“拔管”（把“插管”时深入肺部的呼吸管拔出），同时用人工肺支撑氧气供给。拔管后，病人就可以说话了。一见到亲人，病人就哭诉：开始以为是做了噩梦，后来发现比噩梦还可怕。因为是真的！病人虽然被镇静了，但什么都知道。知道各种粗细的管子从不同部位插到自己身体里，知道血液在流出，知道是外面的机器在供氧，知道机器、血液有各种问题，医护人员忙来忙去在救她。她一个人躺在病床上，知道自己在生命边缘，想喊喊不出，想动动不了。她已经失去了对自己的控制，只能一分钟一分钟的熬。好不容易熬到拔了管，她滔滔不绝讲了好久，把他丈夫骂的狗血淋头，让他躺在床上来试试。因为太激动了，呼吸频率上升，各项指标恶化。医生加大了镇静剂量，然后又给她“插管”。C病房的家属在ICU外面讨论这些事，旁边“明星护工”大姐见怪不怪：“正常。很多病人出院后，都会打家人。因为实在是太痛苦了！！”而且病人认为：承受这种痛苦不是自己决定的，而是家人决定的。要是让自己决定，宁可死也不受这罪！听完我感到非常内疚。在决定是否上人工肺时，我没有考虑病人的痛苦！我以为病人是毫无知觉的，医生也从未和我们提过病人会有感知。我这时候，才理解昨天专家讲座视频里，大夫们频频提及的“谵(zhan) 妄”。意思是病人幻视幻听，严重的大脑皮质功能出现障碍。我认真的和夫人说：“如果我被传染了，或者以后有意外情况。绝对不允许给我上这个东西！”夫人不能马上说OK，这样显得太没有夫妻感情了，只是让我不要胡思乱想。我坚定表示：“有空了我就写遗嘱，制止花钱给我上刑！”话说的坚决，但心里没底。万一自己被镇静了：1）亲属想咋整我可没办法；2）医学上手段太多，不可能穷尽所有“酷刑”；想来想去，只有减少保险额度，没钱了也就不会有人上刑了。1月19日（星期五） 夫人和岳母天天哭，单独坐着哭、抱在一起哭，女儿一提姥爷就哇哇哭。岳母自责当时自己不应该开窗，这样岳父也不会想起来开窗，也就不会感冒，更不会进ICU。夫人说没安排岳父去西藏玩，病好了也不能去了。岳母比我想象得坚强，夫人却不行。虽然岳父很重男轻女，小时候没少收拾她，但她很依恋岳父。有一天夫人跟我说：爸爸救回来身体也很弱了，以后你就是我们家的主心骨了。我说：以前我挣的钱是你、你爸、你妈加起来的两倍，现在自己瞎折腾，也是你们加起来的总和。我不是主心骨？夫人说：不是。家里你说了不算。我认真反思了这个问题。家里生活习惯不是由学历、专业、收入来决定的，而是由脾气决定的，谁脾气大谁说了算。岳母和我们都很注意保养，但没有人想和岳父发生冲突，很多事情由他去。此次光膀子开窗、家人间的传染，我也有责任。如果家里我做主，这事从一开始就不会发生。我挣钱比他们多，但没有做决定的习惯，只会在朋友圈抱怨。一位前同事就直白的告诉我，认为我对孩子不负责任。她家老人感冒不愿意戴口罩，她一小时就收拾好行李把老人送出去住了。听起来很残忍吧，但她家老人孩子都没事！我很好吧，但家里有人躺在ICU。而且，只要这病毒传染性稍微强一点，躺在ICU里的就可能是五个人。如果是那种情况，四个大人或多或少都有自己的责任，但女儿确实是无辜的。巴菲特说过：“习惯是如此之轻，以至于无法察觉。又是如此之重，以至于无法挣脱。”岳父如此，我亦如此。1月20日（星期六）预期周三做的CT一直没有做，我们有不好的预感。早上去献血车旁陪同两位无偿献血者，冬日寒风中只有我和发小卡片的人在车下转圈取暖。我感慨用血速度太快，对方不屑一顾，说最多有人用了3万cc，单位组织了一百多人献血。我的姐夫打来电话，表示如果需要周转，他们可以支持一部分。我妈也微信说可以支援一部分钱，我回复：活着抓紧花，别给ICU。这里一天就是你一年紧巴巴过日子的全部开销。下午探视，还没进病房，隔着玻璃我就可以看到岳父在用力呼吸。问护士：“这是因为自主呼吸增强了吗？”护士摇了摇头。住院医师走过来，和我们说：“我们设备已经开到最大转速4000转了，但他的血氧含量还在下降。只能靠肺工作增加氧气供给，所以你会看到他的呼吸增加。我们是不希望这样的，他胸腔已经有积水，压迫其他内脏，心脏功能受到影响。我们抽了两次，但情况还在恶化。”岳母看了5分钟就离开了ICU，心里实在受不了，我们一同匆匆回家。到家，我说明天还是要去医院，把情况和岳父的兄弟姐妹交代清楚，让他们也有个心里准备。理论上岳母讲最合适，但岳母一说就哭，决定由我说。1月21日（星期日）早上到医院，请岳母在ICU外面守着，自己和岳父的两个妹妹，一个弟弟去沟通。首先把昨天医生讲的岳父病情复述了一遍，结合专家的视频信息进行了分析，说明情况不乐观。接下来说了经济情况，按前期费用估算，能够再坚持20多天。如果人工肺肺膜老化，需要6万元换一套设备，就会少支持3天。50多岁的长辈们老泪纵横，老叔（东北把年龄最小的长辈称为“老”，老叔就是最小的叔叔）说：“爷爷奶奶都90了，我怎么和他们说？万一你爸真走了，我怕他们难受，也坚持不了几年。”中午，老叔和老姑赶回东北，周一还要上班。二姑和二姑夫继续支持我们。十、转院1月22日（星期一）早上提交了工作计划，老板让我去上海总部汇报。考虑了岳父的病情，认为这周问题不大，下周比较危险。定了晚上的机票，准备去上海工作一周。下午4点30分，夫人来电：“今天做了CT，结果出来了。大夫让家里能来的人都来。你马上过来，妈妈刚上地铁回家，二姑还在献血车旁，我都让她们赶快回来。”1小时奔到医院，一位此前未谋面的大夫已经在和家人沟通了，话很委婉，事实是我们预料到但不希望出现的：1）会诊认为医学上没有继续治疗必要。肺部全部被细菌和病毒感染，呼吸衰竭，肾功能衰竭，肝功能衰竭，消化道出血，蛛网膜下腔出血，低蛋白，高钾血症，高钠血症。2）建议病人转院。留在戊医院当然可以，只是每天费用2万多。让我们转出可以理解，每个医院都不希望增加自己的死亡病例，在各项考核统计上数字都不好看。现在的问题是，没有小医院愿意收。家属一起讨论了会，我又回ICU，和一位男大夫沟通了4个问题：问1：是否可以做肺移植？答1：肺移植在整个呼吸系统健全，只是肺功能不良的情况下才可行。现在不具备条件。问2：是否可以把病人接回家？答2：有传染可能，不建议这么做。问3：能否在ICU停止治疗？答3：违背医学伦理和医生职业道德，不可以。问4：继续用药可能维系多长？答4：不好说，可能很长，可能很短。家人都没有时间悲伤了，讨论了1小时，决定回老家的医院。老人不喜欢北京，让他从家里走。回老家走要解决两个问题：一是回家，二是当地医院接收。亲戚说，ICU更衣室就有120救护车小卡片，C病房的病人给了我们999的小卡片。我们打电话咨询，信息如下：1）120急救车：10元每公里，药品费用另算。配2名司机轮流驾驶，另有一名大夫。预计2小时内出车。2）999：表示东北地区道路下雪封路（不实），建议用医疗专线飞机运送到临近机场，再上当地救护车。航线预计24小时能够审批完成，预估飞行费用50万、除冰费用10万。我赶忙表示：离小目标还很远。3）民航。需要满足下列条件：病人需要有医院开具的“适宜乘坐飞机证明”；需要提前72小时申请；在有座位情况下，将拆除经济舱后部2排共计12个座位；担架病人价格为12个经济舱全价，陪同人员另行购票；制氧设备仅限符合某标准的产品，不能携带其他电子医疗系统。民航不满足条件，医疗专线飞机负担不起，只能选救护车。当地医院一开始也不愿意接收，一是增加死亡病例，二是怕家属在本地闹事。我们马上找人，说明家属有心理准备，患者女儿在北京有正式工作，绝对不闹事。有了担保，当地医院可能也想看看人工肺这套系统的实际运用，同意接收。准备出ICU床位，希望我们尽快获得戊医院诊疗方案，他们准备药品和器材。赶忙回到医院，准备办转院手续，但院方不同意带走人工肺设备。我分析说：1）院方不希望病人在院内死亡；2）我们感谢院方为减轻我家庭负担的建议，配合院方进行转院；3）病人离开人工肺系统，活不过5分钟；4）院方不让带走人工肺系统。没有人工肺，大家都达不成目标。我们保证在病人离世后，第一时间按医院标准将人工肺设备送回。大夫表示医疗设备属于国有资产，带出医院需要走流程，让我们明天早上再来协商。十一、弥离1月23日（星期二）回到家不到3个小时，凌晨一点，夫人急电：“大夫说爸爸可能只有2个小时了，你和妈妈抓紧过来，我请二姑去买寿衣了。”人太疲劳了，没有开车，打上首汽奔往医院。车上，夫人又来电：“大夫说如果心脏停止跳动，医学上可以采用电击等抢救手段，问家属的意见。”我说：“算了吧，爸爸已经受了很多苦了。”电影上，病人会睁开眼睛，摸着你的脸庞，说最后一句话，让你照顾好自己。艺术温暖，现实冷酷。病人满头纱布、满脸胡须、全身管线、毫无知觉，只有微弱的心电图，不断报警的血氧和心跳指标。我们自问自答，让爸爸放心，会照顾好妈妈，照顾好宝宝，照顾好自己。虽然已经没有希望，医生还是要进行抢救，很快让我们离开了ICU。和夫人坐在外面等通知。夫人问：“你印象中第一次记得你爸爸的印象是什么？”答：“不记得了，我总是尽力忘记童年。”夫人说：“我印象中第一次记得爸爸，是他起床帮我冲奶粉，我应该比女儿现在还小吧。”凌晨三点，二姑帮忙买寿衣回来了，3600。虽然事前在某宝上也看过，但不到最后一分钟，不可能去买。而要用的时候，也不可能等。亲戚告诉寿衣店主，人是因为感冒走的，还以为店主会很惊奇。谁知店主一点都不意外，说感冒已经害死好多人了，从发病到走时间都很急。8小时前，我给航空公司打电话，问携带病人的规定。8小时后，我给航空公司打电话，问携带骨灰盒的规定。民航规定如下：1）乘客可以携带骨灰盒登机；2）骨灰盒的外包装和乘客的举止，应该不引起其他乘客的反感。天色渐亮，但并没有进一步的消息。没有消息就是好消息，医生的抢救延续了生命。早上10点主治大夫和我们谈话，说最新检测表明肾功能衰竭，问是否需要透析。我们回答不必了。谈话后，我去找太平间。凌晨夫人问过大夫，病人走了之后怎么办？大夫回说找太平间，走流程。太平间在医院一个独立小楼，没有任何标志。电梯只能到地下二层，下去后，两侧门紧锁，没有任何工作人员。回到地面，发现门上写了个联系人X的电话，打了过去：我：我们希望人走了之后，尽快火化，请问程序。？X：病人走了之后，让科室给我打电话就行。是哪个科的？我：请问大概时间？X：你们要做三天、五天还是七天？ 我：不做。回老家办，是否当天可以送火化？X：只有早上火化，看你们时间了。我：费用是否从医院押金里扣除？X：不行，只收现金。我：不走医院的帐？微信支付可以吗？X：不行，只收现金。不走医院账，只收现金，这也太怪异了。晚上和家人商议，大家都觉得有问题。二姑说前几天看到有人从医院正门直接把棺材抬到行车上的，让我直接联系殡仪馆。马上给殡仪馆打电话，对方表示：只要你能把遗体从医院弄出来，就可以，不需要走太平间的流程。而且殡仪馆是政府定价的，不会漫天要价。至于太平间，大多数都是承包的。我问：“北京还能不让家属搬遗体？”殡仪馆：“关键是死亡证明，没有死亡证明，我们什么都不能做。”我问：“棺材随车能带过来吗？能派几个人帮我们抬一下吗？”殡仪馆：“有木棺，有纸棺，随车带。没人给你抬，花钱也没有，自己抬。”挂了电话，想想承包太平间门道不少。不用拦遗体，就说人不在，办不了死亡证明。拖家属几个小时，家属也只能怂。全家讨论了下，觉得戊医院不至于。负责太平间的部门可能有些好处，但医生不会做这种事。万一不让抬遗体或者不开死亡证明，先投诉，再不行就报警。十二、回乡1月24日（星期三）ICU外一夜无事，预计还能有2天，于是早上从医院赶回家开车。碰上地铁限流，长长的队伍排不到头。10点到家，把所有衣服扔进洗衣机洗，冲澡还没有2分钟。电话响了。夫人：“爸爸不行了，医生说这次真不行了。你和妈妈赶快到医院。”先给外甥打了个电话，让他去支援。昨天心里还犹豫叫他抬遗体是否合适，紧急关头也顾不上了，只是叮嘱他务必带口罩。开车冲出小区，还没上高速，夫人来电：“人已经没了。你们马上把爸爸的户口本拿过来，开死亡证明。”我问：“爸爸的户口本，还是我们的户口本？医院不强制送太平间吧。”夫人：“爸爸的户口本。死亡证明要四个东西：医生签字、死者身份证、死者户口本、办理人的身份证。其他我都有。医院这边同意送殡仪馆，我马上叫殡仪馆的车。”赶回去拿了户口本，一上高速匝道就发现上面水泄不通，自己太急了，上匝道前没注意高架桥上一动不动。挪动了半天，发现前面三车连环相撞，每个车主都有理，在那里吵架不挪车。越是着急，越容易堵车。自己当时就不应该相信导航显示的一路畅通，绕点远就好了。30分钟，只开了10公里，夫人又来电话，我正担心女人抓狂哭，夫人却说：“你们也别着急了，我们这边出了些情况。”快到医院时，夫人又来电话：“殡仪馆的棺材到了，你们到哪里了，能抬吗？”近是近，但小车、大车、三轮车、快递摩托、行人挤来挤去，动弹不得。于是只能夫人和外甥下去抬棺材。等我到了，拿了户口本给夫人，她去办手续。岳父的遗体已经穿好衣服放在棺木里，我带上手套，把衣服塞在棺木里，合上棺木，五个男人开始往外抬。遗体非常沉，习俗还要求中间不能落地。我们先是把一电梯的人都请下来，到一层还走错了，找到大厅后门，送上行车。外甥和一位亲戚随车，我们赶忙去在死亡证明上盖章，盖好后急速驰往殡仪馆。在车上，夫人说：“爸爸就是要我办事啊，这一小时，我连悲伤的时间都没有，一秒钟不停：1） 大夫通知进去看最后一眼时，真的就是最后一眼了。心跳显示为0，心电图很长时间才有一点点起伏。2） 随后就被请出病房，开始办手续。大夫一听家属要求走殡仪馆，一点没迟疑就说可以。3） 急电我们取户口本。4） 给殡仪馆打电话，向对方保证医院这边没问题，定了木棺。5） 一位男子S表示可以帮忙穿寿衣，抬棺木，200元。当然同意。6） 再请了ICU一位男性护工H帮忙。7） 医生确认病人死亡，撤下人工肺。护士用纱布填塞各处创口。8） 遗体消毒。9） S确实专业。让我们给病人剃须。而且寿衣不是一件一件穿的，而是套在一起穿的。而且各种配件的穿戴都有讲究，他很麻利。夫人小送了一口气。10）意外出现了。腹部的一个创口，护士处理的不够严密，大量流血，寿衣都被浸透了。11） 紧急打电话问老家先生，先生表示不能穿带血的衣服走，必须换。12）本来打算再让亲戚跑一趟，S说可以让人送到医院，马上定了一套。1800元，是亲戚那天买的半价。13）护士再度处理创口。14）殡仪馆问：是否需要灵堂、追悼会、给遗体沐浴，回复都不要。15）衣服送到。再穿衣服，身体已经不热了，很不好穿。16）殡仪馆行车到。17）找医院的管理人员，打开后门的锁。18）去行车抬棺木。行车司机态度很不好，直接冲着夫人吼：“你们为啥不走太平间！”（司机大哥，没走太平间你拿不到回扣，但至于这样对家属吗？？）19）把棺木抬上ICU。20）将遗体放入棺木。”夫人后来对我说：“你选一条堵车的路也好，否则岳母看到遗体上的满身创口，不知道会哭成啥样。她前面埋怨自己没有照顾好爸爸，染上了这怪病；看到这样又会自责给爸爸上了人工肺，让他受了不少苦。尤其是后面创口没处理好，往外涌血。”又说：“S信息真是灵通，大夫通知我后没5分钟，他就出现了。我给了他500元，毕竟穿了2次衣服，第二次挺难的。另外H给了200，谢谢他愿意帮忙送爸爸最后一程。”到了殡仪馆，棺木从行车上移动到特制的推车上，严密吻合，不需要人再抬。问下午是否可以火化。殡仪馆说：24小时都可以，但习俗最好在天亮时火化。（太平间的X说火化只能是早上，如果家属不知情，那么下午和晚上过世的病人，自然会到他那里。）老家的先生要求夫人打开棺木，用毛巾沾酒给父亲做一个简单的仪式，还有不少词。我们觉得这没有人教着做，搞不定。还好，殡仪馆旁边就有小店，一说买酒，就有人表示可以指引家属做仪式。选好骨灰盒，殡仪馆经办人严格核对了两遍信息，所有证件所有信息匹配，开始进入火化程序。工作人员两次要求家属向遗体致哀，同时确认遗体为死者本人。然后所有家属随同工作人员到火化炉前，目送棺木缓缓滑向炉膛。我们磕头，岳母和岳父的妹妹哭得无法站立。工作人员随即要求家属离开，到休息区等候。夫人开始通知岳父的兄弟姐妹，我开始定机票。首都航空的APP是我用过的最烂APP，没有之一，提交订单后等了1分钟，显示“请求异常，session获取失败”。再订票，我们4个人，只有3张票了。定不了第二天首都航空去鸡西的票，就开始定国航飞佳木斯的票。到了最后一步，夫人突然大喊别买别买，老家先生要求明天必须在中午12点前结束仪式，明天飞佳木斯来不及。于是定了当天最晚一班飞佳木斯的航班，19点。留下夫人岳母取骨灰，我和二姑父赶去酒店取行李。堵车、堵车、堵车！后来被迫兵分两路，夫人和二姑二姑父先带爸爸骨灰走，确保能赶上飞机。我回家里取衣服，如果赶不上，就第二天一早飞佳木斯。我回家抓上一把衣服塞进行李箱就走，还好赶上飞机。候机时，夫人又哭。她和姥姥取骨灰时放入骨灰盒时，发现岳父骨髓都是黑的。这段时间治疗用药很猛，岳父没少遭罪。临降落时夫人告诉我明天凌晨4点出发赶回老家。我不同意，要求推迟到6点出发：1）4点从佳木斯出发，意味着亲戚要凌晨2点从老家出发，睡眠严重不足。2）天黑、雪大、路滑。夫人表示先生已经算好了，早上8点烧纸，必须4点走。路况确实不好，要预留时间。我又再次描述自己黑夜开车经历的种种惊险，雪地本来就不好控制车况，而且风大有严重的风炮（大风把雪刮起，视线受阻）。夫人全家不同意。我只好妥协，但说明我们两人不乘一辆车，万一出问题，还有另一人照顾岳母和孩子。心里还是觉得不安。给大徐发了给消息：如果我有情况，孩子就拜托你了。大徐大惊：大半夜你吓人玩啊？染上病进ICU了？1月25日（星期四）凌晨出发。零下31度，北风5级。车行到郊区，停下来让夫人“摔盆”。我们跪下，夫人把泥盆举在头上，随先生说了一段话，然后用力把盆扔向远处摔碎。六道车光在高速公路上疾驰，晨曦初露，唤醒鸟儿在天空飞翔。岳父再也看不到这些了，我们希望他像《寻梦环游记》那样有个美好的生活，更希望他就在身边，看看他的外孙女，再喂她巧克力。进入城区，头车开得极为怪异，不是黄灯加速，就是远远看到红灯就减速。亲戚解释，风俗就是车不能停，红灯也不行，宁可右转绕圈。7:40，车在大道边的空旷处停下，准备“烧纸”。我一下车就被冰封了，脸如刀割，呼出的空气遇到口罩就结冰，冻得鼻子发痛。路边停了七八十辆车，把4条车道占了2条，都是来送岳父的同事和朋友。看了这阵式，我想岳父在家有点脾气也是正常的。寻思自己走的时候，不会有这么多的人。把骨灰盒请下车摆好。道边一辆厢式货车的门突然打开，大家开始往下卸东西。小的有纸手机、纸电脑、纸元宝；大的有纸别墅、纸车子。车子上还特意画了岳父喜爱的路虎车标。特别是一匹红色纸马，如真马大小，风起马毛飘扬，风落马毛带雪。30多分钟，各种仪式做完，开始点火。火光冲天，这“烧纸”可比南方一叠一叠小纸钱烧起来有气势多了，纸房子车子小马化为灰烬，希望岳父能在另一个世界过得潇洒自由。百多位亲朋，和我们一起在东北也难见的寒流中，与岳父道别。1月27日（星期六）“圆坟”后，我和夫人从佳木斯飞回北京。过去一个月，就像在噩梦中奔跑，一刻也不能停。想从梦魇中醒来，却摆脱不了命运。回到家，吃饭时岳母突然问了一句：“你爸真的走了吗？”我愣了一下。衣架上挂着岳父的衣服，家里仿佛还有他的影子；微信里有他的语音，仿佛还嚷嚷着要再去泰国吃榴莲。但又一想，确认是走了。女儿还不能理解死亡，大喊：“我要姥爷给我吃巧克力。”生活就像一盒巧克力，你永远不知道会尝到哪种滋味。========================感谢在这段日子支持我们的亲人、朋友、同事和领导！很幸运此生与你们同行。特稿|“感冒”启示录：复盘《流感下的北京中年》疾控漏洞 by 财新Source: http://china.caixin.com/2018-02-20/101212143.html (paywall)春节前，一篇《流感下的北京中年》在社交媒体激起了广泛讨论。但对于文中作者岳父所患何症，救治过程前后是否及时、对症，出现了不同的理解和声音。图/视觉中国 【财新网】（记者 刘佳英 见习记者 马丹萌）春节前，一篇《流感下的北京中年》（下称《流感》）在社交媒体激起了广泛讨论。但对于文中作者岳父所患何症，救治过程前后是否及时、对症，出现了不同的理解和声音。 作者称，一种“未知病毒”的感染，令其身板素来硬朗的岳父一步步走向不治。从最初症状出现，到老人不幸离世，中间只相隔短短27天，却辗转了多家医院，输血，进ICU，上人工肺，插管，用尽了各种复杂救治手段，患者和亲属痛苦不堪，救治费用令人咂舌。求医过程的曲折艰难，激发读者强烈共鸣。 不少医界人士阅读了《流感下的北京中年》，纷纷作出评论，认为文章的记录是真实而真诚的。一个受关注的问题是，看似曲折的求医过程中，患者治疗有没有存在延误？ 中国疾病预防控制中心副主任冯子健在2月13日透过媒体表示：流感发展成重症并非延误造成的；在重症发生之前，没有特别好的办法能够及时识别这种重症倾向并采取临床干预，这是由疾病本身的特点造成的，并非中国目前能力达不到。 在解释流感发展成重症为何并非延误造成时，冯子健结合文章中的病例指出：“患者的个体反应不同，有些患者的病症是自限性（靠自身免疫机制作用，进展到一定程度可自动停止的疾病—编者注）的，3到7天，症状就能缓解；另一些患者可能就会持续加重，像《流感》中作者的岳父，即便使用了‘人工肺’这一最高级的医疗手段，也无法挽回。” 但中日友好医院呼吸与危重症医学科医生詹庆元等人，十分强调对流感患者应当早诊早治。他们曾在后期为患者提供诊疗。 詹庆元等人曾在1月中旬，通过视频和文字，与同院医生王一民及于歆在呼吸学科自媒体《呼吸界》详细分析了一个多次转院的患者病例。经和《流感》作者自述比对，可以确定该病例即文章所述岳父。王一民在总结作者岳父病例时明确表示：如果“尽量早识别流感，早使用抗病毒治疗”，“这对避免病人发展成重症是一个机会”。（参见“在这个流感肆虐的冬季，一位呼吸重症科医生的思考” ） 据财新记者查询多份文献以及临床诊断分析，都提出流感应重早诊早治，尤其对高危患者，及时进行抗病毒治疗，可降低病死率。 经过近三个月的流感肆虐，国家卫计委2月12日透露，全国流感疫情已呈下降趋势。但这并不意味着从此高枕无忧。 “不明病毒”是什么冯子健在谈及作者所指“不明病毒”究竟为何物时分析称：这个“不明病毒”很可能还是流感病毒，但他同时表示“也不能排除其他病毒感染存在” 。 而据财新记者了解，中日友好医院的资料显示，患者1月8日转入中日医院之后，经过鼻咽拭子甲型流感病毒核酸检测、BALF甲型流感病毒核酸检测等病原学检查，检查结果均指向作者岳父所感染的实为甲流病毒。 甲流属于季节性流感的一种。季节性流感病毒分为甲型、乙型和丙型三种，其中丙型流感则对公共卫生影响较小，甲型和乙型流感病毒的传播易导致流行和疫情。根据血凝素（H）和神经氨酸酶（N）的结合情况，甲型流感病毒又进一步分类为不同亚型，如正在流行的甲型H1N1和甲型H3N2。乙型流感病毒则分为乙型B/Yamagata（BY）系和乙型B/Victoria（BV）系，不分亚型。 不少人仍把流感和普通感冒相提并论，很难想像其发展为重症，引发严重肺部感染。但在医生们眼中，流感的威胁远远超过普通感冒。 世界卫生组织官网资料显示，流感是一种急性病毒性传染病。相比于普通感冒，流感起病快，患者一般会出现高热、咳嗽（通常是干咳），且全身症状较重，如头痛、肌肉和关节痛、严重身体不适等，肺炎、心肌炎、神经系统损伤等并发症也明显多于普通感冒，病情严重者可能致死。 普通感冒则主要以低热、流鼻涕、打喷嚏等症状为主，并发症相对罕见。 普通感冒和流感经诊断后有着不同的治疗路径，用药选择差异很大。一位三甲医院医生告诉财新记者，流感季如果医疗机构不具备相应的检查条件，发热患者应按流感处理。 UPTODATE循证医学数据库信息中一份对于儿童流感的临床特点和诊断建议中指出：对于有治疗指征的患者，不应因实验室确诊而延误起抗病毒治疗开始的时间；快速诊断测试结果阴性并不能排除流感。 多次转院，错过抗病毒治疗最佳时机 据詹庆元方面披露的病例信息，《流感》作者岳父患病时60岁，据乙肝携带病史15余年，未治疗。患者早在2017年12月28日便出现类似“感冒”症状，出现症状的两日后初次去医院就诊。而接下来的治疗过程，却相当曲折，初次就诊后第五天才用上了流感对症药物，到初次就诊第九天后才确诊为流感。 实际上，对于流感的治疗，世界卫生组织有全面的诊疗指南，对于诊断和用药有明确指引，提示早诊早治，尽早进行抗病毒治疗。 国家卫计委也在不久前发布《流行性感冒诊疗方案（2018年版）》（下称《诊疗方案》）。其中提到，流感诊断应结合流行病学史、临床表现和病原学检查。但对于≥65岁以上老年人或伴有肝病等疾病者，其属于重症流感高危人群，“不必等待病毒检测结果，应尽早给予抗流感病毒治疗”。 根据世界卫生组织的有关指南和《流行性感冒诊疗方案（2018年版）》，甲流的特效抗病毒药物是奥司他韦，商品名为达菲。 多位医生介绍，服用奥司他韦需要在患者出现症状的48小时内使用最有效。《诊疗方案》指出，一般“发病 48 h 内进行抗病毒治疗可减少流感并发症、降低住院患者的病死率、缩短住院时间”。而“发病时间超过 48 h 的 重症患者依然能从抗病毒治疗中获益”。 但患者的诊断过程多有与上述诊疗指南偏离之处。据《流感》一文和詹庆元团队的病情分析，患者2017年12月28日最初出现症状后，12月30日前往附近民营医院就医，后又转诊两家医院，直到1月4日晚，转诊到第三家医院-朝阳医院时，也就是出现症状第七天，才用上了抗病毒药奥司他韦。 据中日友好医院詹庆元等医生记录，当时医院开出的药物包括莫西沙星、奥司他韦和更昔洛韦。其中，莫西沙星为广谱抗生素，奥司他韦和更昔洛韦为抗病毒药物。 此时，患者病情已经很严重。据文章记录，患者当晚19点去家附近另一医院-即文章所述的第二家医院做CT时，显示出现大面积感染，大夫认为需要转院。患者转至朝阳医院后病毒扩散迅速，不久便需要呼吸机支持。 而此前，患者两次前往附近民营社区医院，医生均以抗菌素治疗。 据文章称，患者12月30日第一次前往家附近的民营医院治疗。该医院经验血检查，“开了三天输液”，使用了头孢类抗菌素，而非抗病毒药物。但1月3日患者病情恶化，医院拍X光片后发现“肺部有小部分感染，白血球低，心电图基本正常 ，换用阿奇霉素”。阿奇霉素亦属抗菌素，除用来治疗细菌感染外，还常被用于呼吸道常见的支原体感染。有医生对财新记者分析，上述处理，应该是医院没有将患者诊断为流感，抗菌素用于对症呼吸道感染。 实际上，在12月31日即老人在民营医院输液第二天，根据詹庆元等展示的病例记录，该患者“再次出现发热，体温最高38.5℃，伴呼吸困难，呼吸频率加快，食欲不振，乏力等症状”。这一描述，更接近《流行性感冒诊疗方案（2018年版）》（下称《诊疗方案》）中对流感症状的描述。 多位医生也指出，流感高发季，患者出现超过38度的高烧，应当考虑是流感的可能性。根据国家卫计委制定的最新版《诊疗方案》，重症流感的临床表现之一，即包括”呼吸频率快，呼吸困难，口唇紫绀”。流感潜伏期通常1-7天，多为2-4天，对于≥65岁以上老年人或伴有肝病等疾病的高危患者，容易发展成重症流感、出现肺炎等并发症。 根据《诊疗方案》，除持续发热、呼吸困难等临床表现外，“白细胞总数不高或降低”，也是流感可能的表征之一，对应抗病毒治疗。在文章作者描述的岳父就医经历中，老人当时已出现上述可疑症状，且1月3日胸片提示“肺部有小部分感染”，“白血球低”，当时医院治疗仍以抗生素为主，未作抗病毒治疗。 尽管医学上不乏流感合并细菌性感染案例，且更准确完整的诊断过程还应以患者的病历为准，但在文章作者的初期就诊记录和中日友好医院詹庆元等医生发表的病例分析文章中，从12月30日至1月4日即六天内，其都未提及初次就诊医院提示流感可能性。 直到1月4日患者来到朝阳医院，能获得的有关记录才显示，医院给老人做了流感病毒筛查。老人咽拭子检测结果呈阴性，提示没有甲型流感或乙型流感感染。 不过，首都医科大学附属北京佑安医院感染综合科医生李侗曾告诉财新记者，一般医院初筛流感病毒，使用的是快速抗原检测，20分钟可以出结果，但准确性较低，存在“假阴性”可能。但如果综合患者临床表现等，仍怀疑流感，可通过核酸检测进一步判定，一般第二天出结果。 直到1月8日后，中日友好医院对患者了进行病原学相关检查，方确诊该患者的确是甲流病毒感染。其中，BALF细菌涂片及染色、真菌涂片染色、抗酸涂片及染色、GM试验、呼吸道合胞病毒、乙型流感病毒核酸、支原体、衣原体及军团菌核酸均阴性。 来自山东的一位三甲医院的医生对财新记者表示，门诊反应慢并非特例。他认为，流感部门目前在国内医疗科室中并不受重视；而对前端诊疗依赖性高的疾病，中国的诊疗方面和发达国家比，总体上有差距。 医疗机构诊疗水平差距大，患者何往 首都医科大学附属地坛医院感染性疾病诊疗中心主任李兴旺告诉财新记者，他曾多次在会议上指出“中国人总拿流感不当回事”，且不仅是社会大众，相当一部分基层医生也对此意识薄弱，“并不是说那些医生态度不认真，但各地各级医院的诊疗水平确实有差距”。（参见“独家|流感高峰期5亿人“家庭医生”去哪了：大量基层医院不能看发烧” ） 回头看《流感》文中所述患者转入大医院之后的就诊经历，先后在五家医院之间辗转奔袭，并不利于患者的康复。 患者转至第三家朝阳医院就诊后，医院床位爆满，不确定能否安排住院，其在到达朝阳医院第二天（1月5日），即转到了第四家医院。但在这里，老人病情“直转急下”，“整个肺都已经被病毒占据”，医生只好帮忙联系到第五家医院-中日友好医院，作者岳父再次转院。 此时即1月8日，根据詹庆元等展示的入院诊断，老人已出现急性呼吸窘迫综合征（ARDS），并查出“乙型肝炎病毒携带”，“肝功能损害”，需要入住重症加强护理（ICU）病房。后来16天中，据前述文章记述，病人情况逐日恶化，即便用上人工肺（简称ECMO），也没能逃过死亡。 而《流感》作者岳父在ICU里，每日费用大概是8000元-20000万，人工肺开机费6万元，“随后每天2万（元）起”。这样算下来，患者一家后期为岳父治病，花费至少接近30万元。期间无论是病人，还是家属，都有着沉重的心理负担。 詹庆元等分析称，呼吸机、ECMO等生命支持手段，并不能治疗原发疾病，而是为患者治疗原发性疾病赢得更多时间。目前医疗体系下，ECMO相关的医疗费用几乎全由患者自付，监护室中每天的花费也常常令一个家庭不得不面临沉重的债务。 而更重要的教训还在于，应尽早识别重症流感患者，给予适当治疗。“最早的（用药）时机似乎没把握住。”对于患者的治疗过程，王一民前述场合分析称，“在第一家医院拍胸片的时候，病人已经出现呼吸困难，又在这个季节，医生应该有意识要早用奥司他韦。并不是说用了就一定能逆转或遏制病情，但我想是次教训。” 尤其对于高危人群，王一民等医生表示，得了流感不能“抗”。根据《诊疗方案》，除像《流感》一文中患者这样伴有肝病的老年人外，年龄＜5岁的儿童、肥胖者（体重指数＞30）、妊娠期妇女、HIV感染者等，也是流感病毒感染的高危人群，较易发展为重症病例，应给予高度重视。 李兴旺强调，感冒患者前往基层医院就诊，基层医生应当首先鉴别诊断该患者是流感还是普通感冒。如果是流感患者，且属于高危人群，应尽早使用抗流感病毒药物；而如果发现患者出现《方案》中的重症流感症状，更应该警惕，必要时建议患者住院接受治疗。 疫苗预防重要，为什么不接种 实际上，相对于患病后复杂而昂贵的诊断和治疗过程，还存在能够避免染上流感，或令染上流感后更易治愈的预防手段。对高危人群而言，疫苗预防尤为重要。 据世界卫生组织，接种疫苗是预防流感的最有效方法。但中国目前全民疫苗接种率却仅为2%左右，不及美国的二十分之一。（参见“中国流感疫苗接种率不及美国二十分之一 最有效预防手段为何难普及？” ；“升级版流感疫苗今秋上市 三价疫苗还要不要打？” ） 具有十五年国内顶级三甲医院工作经验的美中宜和集团医生邵杰对财新记者表示，她曾目睹孕妇因流感死亡的病例，深感早期预防的重要性。她指出，中国的卫生预防体系和中国人免疫接种的思想仍属落后。 “2009年流感在全球爆发，疫情涉及到的各个国家都有孕妇死亡的病例，除了日本。”邵杰回忆，当时疫情介绍后，世界卫生组织的有关会议上，还专门邀请日本的妇产科医生介绍经验。 邵杰还表示，她作为涉外医疗机构的业者，有机会见到日本人对疫苗接种的重视和对于医生要求的严格执行，“这方面需要向日本学习”。她说，每年9-10月份应该打疫苗的时候，国内响应者甚寥，一旦12月-2月流感爆发，“大家又开始找疫苗”，但此时为时已晚，因为即便此时接种了疫苗，也需要四周左右才能产生抗体。 而据财新记者了解，流感疫苗属于二类苗，需要接种者自费；而即便有意接种，由于相应的信息缺乏，许多人并不知道去哪里才能接种。 流感死亡病例统计的隐患 上述文章作者岳父虽然不幸去世，但这位患者却未必进入流感死亡率的相应统计。 冯子健曾强调：致死是流感的特点之一。他表示：“一般来说，流感重症比例不高，公众对“流感致死”的感受并不强烈。但由于今年感染流感的患者人数众多，严重病例、死亡病例的绝对数值有所提高。” 而事实上，中国大陆的流感死亡率登记数据相当低，这或许也在一定程度上影响了公众的认知。例如，截至2018年1月9日，香港今年九天之内共出现成人严重流感24宗个案，其中10人死亡，多为65岁以上老人。内地1日至7日流感暴发疫情起数显著高于往年同期，未见报告死亡病例。 类似情况在2017年夏季流感期也出现过。2017年5月至8月左右，香港与广东同处甲型H3N2流感高发期。其中香港确诊流感患者近1.5万例，死亡人数超过300人，而广东省截至8月6日报告流感病例（74872例）虽远超过香港，死亡病例却只有3例。 为何内地流感病例基数更大，报告死亡病例却极少？（参见“同样是流感 为何广东报告死亡病例远低于香港” ） 部分原因或在于，其对流感死亡病例采用的统计口径不同。欧美等发达国家以及香港等地区，倾向于把和流感相关的死亡病例都统计出来，比如心血管疾病患者在患流感及其并发症后死亡，将被纳入与流感相关的死亡病例，因为流感可能加剧了患者原先的病情。但在中国内地，卫生部门通常只把其死亡原因归因于心血管疾病，而不报告为流感死亡病例。 北京一位三甲医院感染中心医生上述医生曾分析称，老年人、体弱者是流感的高危人群，容易出现肺炎、神经系统损伤等并发症，并同时患有心脏病、脑卒中等基础性疾病，其死亡原因通常比较复杂，流感可能是压死患者的“最后一根稻草”，但又不能完全把患者的死亡原因归结于流感。 这位医生对财新记者表示，鉴别患者是由流感及其并发症引起的死亡，还是由原先基础性疾病引起的死亡，操作起来很难，因为病人的情况通常很复杂，而统计“与流感相关的死亡病例”更有利于人们判别流感的流行形势，并采取相应的防控措施。 实习记者王一妃对此文亦有贡献附：患者病程发展记录 一，第一家医院：“通州民营医院” 1.12月28日 老人感冒流涕 没有吃药 中日友好医院记录：患者劳累后出现咳嗽、咳黄白痰，量较多，易咳出，伴轻度头痛、流涕、浑身肌肉酸痛。无明显胸闷、胸痛、呼吸困难，无恶心呕吐、腹痛、腹泻。未治疗。 2.12月29日 开始发烧 吃感冒药 3.12月30日 挺不住了 去了通州民营医院甲 医院验血后开了3天输液 消炎药头孢 输液后有改善（第一天输液） 当晚孩子发烧 中日友好医院记录：11天前出现发热，体温最高38℃，伴畏寒，无寒战。就诊当地社区医院，查血常规基本正常（自诉，未见结果），诊断「上呼吸道感染」，予头孢类抗生素（具体不详）静点2天，患者咳嗽咳痰减轻，体温恢复正常。 4.12月31日 姥姥发烧 岳父输液 医生强调戴口罩（第二天输液） 中日友好医院记录：患者再次出现发热，体温最高38.5℃，伴呼吸困难，呼吸频率加快，食欲不振，乏力等症状。 5.1月1日 姥姥去输液 孩子好了 岳父睡不好（第三天输液） 6.1月2日 姥姥好转 岳父精神状态不太好 7.1月3日 岳父病情恶化 去通州民营甲医院拍X光片 肺部有小部分感染 白血球低 心电图基本正常 换用阿奇霉素 晚上略有好转，继续发烧 中日友好医院记录：患者在当地社区查胸片：双下肺少许炎症，予阿奇霉素0.5g QD抗感染，呼吸困难仍进行性加重。 二，从第二家到第三家医院（解放军263医院-朝阳医院） 8.1月4日 去通州民营甲医院输液 ； 晚上19点去家附近乙医院做CT 大夫认为病情严重， CT显示腹部大面积感染，做咽拭子甲流、乙流都是阴性。医生表示没有床位，且病情严重，建议去大医院治疗。 晚上21点到朝阳医院，第一名医生说不看片子、今天已经输过液，第二天早上来化验，是否有必要等化验结果。第二名医生看片子，说先挂号做心电图，后面也抽了动脉血 凌晨到朝阳医院取结果，使用莫西沙星、多索茶碱、甲泼尼龙、阿昔洛韦等药品输液，并配合吸氧。 中日友好医院记录：患者就诊于解放军263医院，血常规正常，胸部CT：双肺多发磨玻璃影，胸膜下为主。甲乙流初筛阴性，当日转至朝阳医院急诊科，诊断「肺部感染」，予莫西沙星+奥司他韦+更昔洛韦抗感染。 三，从第三家医院到第四家医院（朝阳医院治疗-东直门中医院） 9.1月5日 早上7点半去医院，等8点医生查房可能安排住院。岳父到输液去开始吸氧，9点医生开始巡查病区。大夫表示10：30左右才知道是否有床位。 中午在朋友安排下，住到丁医院。医生说病毒扩散很快，病情急转直下，变成大白肺，需要呼吸机支持。ICU不一定有床位。医生说是未知病毒感染，建议转到朝阳或协和 下午大夫让去买达菲，丁医院没有，周围先去的第一家医院也没有，到朝阳医院开了一盒达菲。 中日友好医院记录：转至东直门中医院住院，予莫西沙星+奥司他韦+哌拉西林舒巴坦抗感染，呼吸困难症状进一步加重。复查胸部CT：双肺磨玻璃影影较前明显增多。为进一步治疗收入中日医院呼吸与危重症医学科。 10.1月6日 夫人转述病人大量输液高烧不退，最高39度。另一位大夫说要做好转院进ICU准备。下午到医院换班，医生说病毒性肺炎会引起很多并发症，最终死因归于其他病症。当晚服用退烧药，退烧。 11.1月7日 没有病情记述 四，第五家医院：中日友好医院 12.1月8日 夫人转述，一线抗生素都用了，病毒没有控制住，继续扩散，整个肺都已经被病毒占据。普通的鼻导管供3升氧量已经不能支撑，开始用面罩吸氧，开到10升的氧量，勉强将血氧量维持在90。丁医院大夫集体讨论后，再次建议转院，并且直接进ICU。 下午到戊医院，直接送进ICU。每个病人都专门有护士24小时看护，医护人员数大概是患者人数的4倍。无创呼吸机已经上了，血氧量回到90以上。 中日友好医院入院诊断：患者主要诊断为：甲型流感病毒肺炎；ARDS；乙型肝炎病毒携带；肝功能损害。 13.1月9日 岳父精神奕奕 14.1月10日 岳父在ICU的8个病房中，被从较大的病房转移到最小的病房，体温和血氧指标也相对平稳 15.1月11日 下午 夫人急电：“今天拍片结果还是不好。医生决定插管 15.1月12日 岳母在医院急电：“今早拍片结果还是不行，医生准备上人工肺。住院医师：“不太好，他前后经历5个医院，现在感染上了医院的一些耐药细菌。我们已经给他上了最强的抗生素——万古霉素，但还是在恶化。” 16.1月13日 无病情记录 17.1月14日 作者连续咳嗽，前往另一家医院，一切正常 18.1月15日 无病情记录 19.1月16日 夫人打电话，说拍片结果有好转 20.1月17日 无病情记录 21.1月18日 无病情记录 22.1月19日 无病情记录 23.1月20日 住院医师走过来，和我们说：“我们设备已经开到最大转速4000转了，但他的血氧含量还在下降。只能靠肺工作增加氧气供给，所以你会看到他的呼吸增加。我们是不希望这样的，他胸腔已经有积水，压迫其他内脏，心脏功能受到影响。我们抽了两次，但情况还在恶化。” 24.1月21日 无病情记录 25.1月22日 大夫说，1）会诊认为医学上没有继续治疗必要。肺部全部被细菌和病毒感染，呼吸衰竭，肾功能衰竭，肝功能衰竭，消化道出血，蛛网膜下腔出血，低蛋白，高钾血症，高钠血症。2）建议病人转院。留在戊医院当然可以，只是每天费用2万多。 26.1月23日 夫人急电：“大夫说爸爸可能只有2个小时了，你和妈妈抓紧过来，我请二姑去买寿衣了。”夫人又来电：“大夫说如果心脏停止跳动，医学上可以采用电击等抢救手段，问家属的意见。” 27.1月24日 夫人：“爸爸不行了，医生说这次真不行了。” （根据《流感下的北京中年》一文和中日友好医院医生相关公开资料整理）
Start-stop-daemon is a tiny but useful stock Linux util by Debian and Ubuntu. You can turn almost every executable into background daemon.Usage: start-stop-daemon [ ...] <command> Commands: -S|--start -- <argument> ... start a program and pass <arguments> to it -K|--stop stop a program -T|--status get the program status -H|--help print help information -V|--version print version Matching options (at least one is required): -p|--pidfile <pid-file> pid file to check -x|--exec <executable> program to start/check if it is running -n|--name <process-name> process name to check -u|--user <username|uid> process owner to check Options: -g|--group <group|gid> run process as this group -c|--chuid <name|uid[:group|gid]> change to this user/group before starting process -s|--signal <signal> signal to send (default TERM) -a|--startas <pathname> program to start (default is <executable>) -r|--chroot <directory> chroot to <directory> before starting -d|--chdir <directory> change to <directory> (default is /) -N|--nicelevel <incr> add incr to the process' nice level -P|--procsched <policy[:prio]> use <policy> with <prio> for the kernel process scheduler (default prio is 0) -I|--iosched <class[:prio]> use <class> with <prio> to set the IO scheduler (default prio is 4) -k|--umask <mask> change the umask to <mask> before starting -b|--background force the process to detach -C|--no-close do not close any file descriptor -m|--make-pidfile create the pidfile before starting -R|--retry <schedule> check whether processes die, and retry -t|--test test mode, don't do anything -o|--oknodo exit status 0 (not 1) if nothing done -q|--quiet be more quiet -v|--verbose be more verbose Retry <schedule> is <item>|/<item>/... where <item> is one of -<signal-num>|[-]<signal-name> send that signal <timeout> wait that many seconds forever repeat remainder forever or <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout> The process scheduler <policy> can be one of: other, fifo or rr The IO scheduler <class> can be one of: real-time, best-effort or idle Exit status: 0 = done 1 = nothing done (=> 0 if --oknodo) 2 = with --retry, processes would not die 3 = trouble Exit status with --status: 0 = program is running 1 = program is not running and the pid file exists 3 = program is not running 4 = unable to determine statusHere are some important parameters:-b --background, it is especially useful for those processes that not designed to run as a daemon, it will force the program detach and work in the background.-m together with -p, will create a pid file for the target process. Useful if the target process doesn't support writing its pid to a file.-u, run the process as a specific user.Demo time:#!/bin/sh # Quick start-stop-daemon example, derived from Debian /etc/init.d/ssh set -e # Must be a valid filename NAME=foo PIDFILE=/var/run/$NAME.pid #This is the command to be run, give the full pathname DAEMON=/usr/local/bin/bar DAEMON_OPTS="--baz=quux" export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" case "$1" in start) echo -n "Starting daemon: "$NAME start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS echo "." ;; stop) echo -n "Stopping daemon: "$NAME start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE echo "." ;; status) if ps -p `cat $PIDFILE` > /dev/null then echo "$NAMEis running" # Do something knowing the pid exists, i.e. the process with $PID is running fi restart) echo -n "Restarting daemon: "$NAME start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS echo "." ;; *) echo "Usage: "$1" {start|stop|status|restart}" exit 1 esac exit 0Here I introduced a way to determine if the PID is running suggested by Stackoverflow, you can replace it with better ways you know.
As you may know, Ubuntu 14.04 comes with GCC 4.8.4 which is sometimes not up to date enough to compile some project. You may want to install 4.9 or higher but "apt-get install gcc-4.9" will report that the gcc-4.9-base is already up-to-date.Here are the steps to install the real compiler on Ubuntu 14.04.First, you need to ensure you have "add-apt-repository" command installed. If not, install it byapt-get install software-properties-commonPS: for Ubuntu version lower than 12, you need: sudo apt-get install python-software-propertiesSecond, add test ppa repo:add-apt-repository ppa:ubuntu-toolchain-r/test and update your library apt-get updateThird, install the new gcc:apt-get install gcc-4.9 g++-4.9 cpp-4.9Lastly, update the symbolic links or you will not able to compile with the typical gcc command.There are mainly two ways to do it.Create links manuallycd /usr/bin rm gcc g++ cpp ln -s gcc-4.9 gcc ln -s g++-4.9 g++ ln -s cpp-4.9 cppUse update alternatives commandupdate-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48 \ --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 \ --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.8 \ --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.8 \ --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.8update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 49 \ --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 \ --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.9 \ --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.9 \ --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.9update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 53 \ --slave /usr/bin/g++ g++ /usr/bin/g++-5 \ --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-5 \ --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-5 \ --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-5Now, try gcc -v and see it reports the correct version.
Aliyun provided an official description of the signature of API query.Here is the official document about API signature: CALL METHODThere is a small problem with its description: you must use TimeStamp instead of Timestamp!That's all and good luck.
Repost: HMAC functions in Delphi (HMAC_SHA256, HMAC_SHA1)
Credit: Yanniel's notesI came across HMAC (Hash-based message authentication code) functions when developing a RESTful client application in Delphi. The RESTful Web Service API required me to send HMAC_SHA256 signatures (Base64 encoded) with each HTTP request.HMAC functions take two parameters: a key and a message. The purpose of the HMAC function is to authenticate the message and guarantee the data integrity of the message.The cryptographic strength of the HMAC function lies on the underlying hashing function that it uses: MD5, SHA1, SHA256, etc.So, these functions are usually are termed HMAC_SHA256, HMAC_SHA1, HMAC_MD5 to connote the core hashing function being used.The outcome of a HMAC function is basically an array of bytes, but it is usually represented as a hexadecimal string or encoded as a Base64 string. (The RESTful Web Service API needed the Base64 encoded output).I Googled around for a bit, but I didn’t get a clean implementation of HMAC_SHA256 in Delphi (encoded as Base64). I glued together the pieces from some questions on StackOverflow and coded an Indy based implementation that uses generics to specify the core hashing function.Brief description: I created a helper class called THMACUtils. Note that this class uses generics to indicate the hashing algorithm (TIdHMACSHA256, TIdHMACSHA1). Three functions are provided: the main thing happens in the HMAC(...) function; HMAC_HexStr(...) and HMAC_Base64(...) are simply decorations of the output.unit HMAC; interface uses System.SysUtils, EncdDecd, IdHMAC, IdSSLOpenSSL, IdHash; type THMACUtils<T: TIdHMAC, constructor> = class public class function HMAC(aKey, aMessage: RawByteString): TBytes; class function HMAC_HexStr(aKey, aMessage: RawByteString): RawByteString; class function HMAC_Base64(aKey, aMessage: RawByteString): RawByteString; end; implementation class function THMACUtils<T>.HMAC(aKey, aMessage: RawByteString): TBytes; var _HMAC: T; begin if not IdSSLOpenSSL.LoadOpenSSLLibrary then Exit; _HMAC:= T.Create; try _HMAC.Key := BytesOf(aKey); Result:= _HMAC.HashValue(BytesOf(aMessage)); finally _HMAC.Free; end; end; class function THMACUtils<T>.HMAC_HexStr(aKey, aMessage: RawByteString): RawByteString; var I: Byte; begin Result:= '0x'; for I in HMAC(aKey, aMessage) do Result:= Result + IntToHex(I, 2); end; class function THMACUtils<T>.HMAC_Base64(aKey, aMessage: RawByteString): RawByteString; var _HMAC: TBytes; begin _HMAC:= HMAC(aKey, aMessage); Result:= EncodeBase64(_HMAC, Length(_HMAC)); end; end. Below there’s an example of how to use the THMACUtils class.program HMACSample; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, HMAC, IdHMACSHA1, IdHashMessageDigest; begin try Write('HMAC_SHA1("key", "message")'#9#9'= '); Writeln(THMACUtils<TIdHMACSHA1>.HMAC_HexStr('key', 'message' )); Writeln; Write('HMAC_SHA256("key", "message")'#9#9'= '); Writeln(THMACUtils<TIdHMACSHA256>.HMAC_HexStr('key', 'message' )); Writeln; Write('HMAC_SHA1_Base64("key", "message")'#9'= '); Writeln(THMACUtils<TIdHMACSHA1>.HMAC_Base64('key', 'message' )); Writeln; Write('HMAC_SHA256_Base64("key", "message")'#9'= '); Writeln(THMACUtils<TIdHMACSHA256>.HMAC_Base64('key', 'message' )); Readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. The console application above looks like this:
Enabling nginx cache system is simple, just follow the official tutorial step by step, and you're ready to go. Or is it?Here is a typical nginx conf file configured as a reverse proxy with cache enabled:http { proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g use_temp_path=off; server { location / { proxy_pass http://1.2.3.4; proxy_set_header Host $host; proxy_cache STATIC; proxy_cache_valid 200 1d; proxy_cache_lock on; proxy_cache_background_update on; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; } } } This configures nginx to forward requests to the upstream server at http://1.2.3.4 and cache it as files in /data/nginx/cache with a maximum size of 1GB, inactive time of 24hours and in memory key cache up to 10MB, and it indeed works.However, if you copy these to your exist confs, and you'll probably find out that your cache folder is always empty. That's because there are 2 exceptions that under which the caching system won't work:Upstream server's response contains the header "Set-Cookies"proxy_buffering sets to off.Also, here are two more tips to let your nginx handles the cache request more appropriately:add directiveadd_header X-Proxy-Cache $upstream_cache_status;This will add an extra header to your response to give you an explicit vision of what your cache state is.add directiveproxy_cache_bypass $http_cache_control;This will make nginx ignore/bypass its cache when browsers/clients request resources with a no-cache header (this happens to every main page in Chrome browser).add directive:proxy_cache_purge PURGE purge_all from all; proxy_pass {your upstream server here};This will purge the entire cache if your visit the specific URL by a special PURGE request viacurl -X PURGE yoururlhere You can also purge only one page at a time by removing the purge_all option as well.Notice:proxy_cache_purge is not available for nginx free version, you need to add THIS MODULE to make it work.the proxy_pass below/above the purge directive is a necessity. The purge module needs it to identify the correct cache, or it'll return 405 Not Allow instead.On a successful purge, you'll receive a page saying successful purge.The original free purge module is not under development anymore. Please use my forked version instead which has got all the necessary commits merged.Here is the final version:http { proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g use_temp_path=off; server { location / { proxy_pass http://1.2.3.4; proxy_buffering on; proxy_set_header Host $host; proxy_cache STATIC; proxy_cache_valid 200 1d; proxy_cache_lock on; proxy_cache_background_update on; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; proxy_cache_bypass $http_cache_control; add_header X-Proxy-Cache $upstream_cache_status; proxy_cache_purge PURGE from 127.0.0.1; #purge this page only } location /purge { #any url you like. proxy_cache_purge PURGE purge_all from all; proxy_pass http://1.2.3.4; #it's a must } } } Thank you for Justin for figuring out the proxy_buffering part as it's still not officially documented.