2024-11-21 04:56:12
努菲尔德健康(Nuffield Health)是一家英国知名的非营利性医疗保健机构,成立于1957年,以提供高质量的医疗服务和促进全民健康为宗旨。它运营着多个私立医院、健身中心、健康诊所和康复设施,并致力于整合预防、诊断和治疗服务。努菲尔德健康以其卓越的患者护理和创新健康项目闻名,包括体检、运动康复、心理健康支持等。作为慈善组织,努菲尔德将利润重新投资于社区项目和医疗服务,致力于提高全社会的健康水平。
微软与努菲尔德健康(Nuffield Health)合作,为其员工提供全面的健康体检服务,展现了对员工健康与福祉的高度重视。这项合作旨在通过个性化的健康评估、疾病早期筛查和预防性护理,帮助员工更好地管理健康,同时提升工作效率和生活质量。体检服务涵盖身体检查、营养建议、心理健康支持等多个领域,确保员工能够在高强度的工作环境中保持身心平衡。这种合作不仅体现了微软“以人为本”的企业文化,也为员工提供了专业的健康保障。
微软为员工提供体检服务,合作的机构正是努菲尔德健康(Nuffield Health)。我加入微软不久,大约两年前,就发现了这个福利。按照流程,我发了邮件、填写了表格,很快预约到了剑桥的努菲尔德进行体检。体检项目涵盖了最基本的几项:身高、体重、血压、尿检和血检等。
其中让我印象最深的是,他们寄给我一个需要佩戴在胸前的设备,看起来有点像监听器,甚至睡觉时也不能摘下来,只能尽量避免洗澡。这台设备主要用于监测心率等数据。体检完成后,我收到了一份报告,其中提到我的尿酸偏高,这可能会引发痛风。医师针对这一问题给我建议了一份食谱,要求减少甜食和大米的摄入,用糙米替代大米作为主食。我尝试了几顿后发现坚持不下去,实在觉得不好吃。
后来,我又进行了一次复检,结果尿液中有血,这让我吓得不轻。为此,我赶紧去看了GP,经过再次检查后发现一切正常,总算松了一口气。
这一次,我在公司内部群里看到消息,说努菲尔德(Nuffield)会在这两天来公司为员工提供体检,只需报名即可。我填写了表格后,被安排在今天11:45进行检查。公司与努菲尔德合作,在公司内部设有一个办公室,设备非常齐全,包括验血、验尿、测血压等项目,还有一些芯片贴在手脚上,估计是用来监测心跳的。检查结束后,他们会提供一份报告和建议。
让我印象深刻的是抽血检查,竟然有一台非常先进的机器可以当场出结果。抽血时,他们在我的手指上扎了一针,过程很快,但几分钟后手指开始疼痛。我有点晕血,感到非常不适,整个人都觉得难受。在等待机器出结果时,护士小姐姐拿着我的尿样去测试,回来后告诉我尿液中有蛋白质。血液检查的结果显示,我的血糖有点高,接近糖尿病的边缘。她提醒我要特别注意饮食和加强锻炼。
尿液中出现蛋白质(蛋白尿)可能是多种原因引起的,通常分为生理性和病理性两类。生理性蛋白尿可能由剧烈运动、精神压力、发烧或脱水等暂时性因素引起,通常在去除诱因后会自行消失。而病理性蛋白尿则可能与肾脏功能受损有关,例如肾炎、糖尿病肾病、高血压导致的肾损伤或其他系统性疾病。具体原因需要通过尿液检查、血液检查和其他诊断手段进一步确认,若持续存在蛋白尿,建议尽早就医进行评估和治疗。
尿液中出现血液(血尿)可能由多种原因引起,分为显微血尿(显微镜下可见血细胞)和肉眼血尿(肉眼可见尿液变红)。常见原因包括泌尿系统感染(如膀胱炎、肾盂肾炎)、肾结石或膀胱结石、外伤、剧烈运动、前列腺疾病、肿瘤(如膀胱癌或肾癌)以及某些药物或慢性疾病(如肾炎或遗传性疾病)。在女性中,月经期也可能导致尿液中带血。若持续出现血尿,建议尽快就医,通过尿液检查、影像学检查(如B超或CT)等手段查明原因,并进行针对性治疗。
2024-11-18 04:36:56
币圈的P站是Poloniex,前几年被孙宇晨收购了,它是一个交易所。我很久之前用过Poloniex,当时对其印象并不是很好。
不过,现在我对其好感增加,因为币安买下的coinmarketcap免费的接口就很多限制。
https://api.poloniex.com/markets/price
能返回所有交易配对,比如这样的:
[ { "symbol": "BTS_BTC", "price": "0.0000000186", "time": 1731852313035, "dailyChange": "-0.0462", "ts": 1731852313054 }, { "symbol": "DASH_BTC", "price": "0.000317", "time": 1731848096481, "dailyChange": "0.0063", "ts": 1731848096489 }, ... ... ]
这个JSON返回的结构是一个数组,每个元素是个结构体,也就是一个币价的具体配对信息,我们可以看成是一条边Edge两个顶点Vertice,这样就是一个图结构(带权图 Weighted Graph,权值就是兑换价格),虽然给的是单边,但其实是个双向的,比如USD_BTC得值可以反过来推得BTC到USD的价格。我们可以设计一个算法,从币价A到币价B,可以通过BFS广度优先搜索算法来获取价格。比如有配对A_B、B_C、C_D我们就可以获得A_D的值。
深度优先搜索算法DFS也可以,不过这个算法会返回找到的第一条路径,并不能保证是最短的,最短的确实是最准确的,因为链也长,转换精度就会下降。
当然,可能存在多条路径,最理想的状态是把这些路径都求出来,取个平均啥的,不过这样就得暴力搜索所有的路径了,算法时间复杂度就会比较高。
以下是BFS广度优先算法的代码,Javascript的,可以用于网页前端或者NodeJs后端,甚至是CloudFlare Serverless Worker或者是其它无服务框架:Azure Function、AWS Lambda等。
const fetch = require('node-fetch'); async function getTicker(a, b) { try { const response = await fetch('https://api.poloniex.com/markets/price'); const data = await response.json(); // 创建一个哈希表来存储代币对及其价格 const pairMap = new Map(); // 使用直接对及其反向对填充哈希表 for (const { symbol, price } of data) { const [base, quote] = symbol.split('_').map(token => token.toLowerCase()); if (!pairMap.has(base)) pairMap.set(base, new Map()); if (!pairMap.has(quote)) pairMap.set(quote, new Map()); pairMap.get(base).set(quote, parseFloat(price)); pairMap.get(quote).set(base, 1 / parseFloat(price)); // 添加反向边 } // 将 token 转换为小写 a = a.toLowerCase(); b = b.toLowerCase(); // BFS 查找从 a 到 b 的转换率 const queue = [[a, 1]]; // 从初始代币和兑换率 1 开始 const visited = new Set([a]); while (queue.length > 0) { const [currentToken, currentRate] = queue.shift(); if (currentToken === b) return currentRate; // Check connected tokens for (const [nextToken, rate] of (pairMap.get(currentToken) || new Map())) { if (!visited.has(nextToken)) { visited.add(nextToken); queue.push([nextToken, currentRate * rate]); } } } // 如果未找到路径,则返回 null return null; } catch (error) { console.error("获取或处理数据时出错:", error); return null; } } // Example usage: (async () => { const rate = await getTicker('btc', 'trx'); console.log('BTC 到 TRX 的兑换率:', rate); })();
代码的一些简单说明:
如果有多组兑换,我们可以改成传入一个数组,这样就不用多次调用P站的API了。
const fetch = require('node-fetch'); async function getToken(pairs) { try { const response = await fetch('https://api.poloniex.com/markets/price'); const data = await response.json(); // 创建一个哈希表来存储代币对及其价格 const pairMap = new Map(); // 使用直接对及其反向对填充哈希表 for (const { symbol, price } of data) { const [base, quote] = symbol.split('_').map(token => token.toLowerCase()); if (!pairMap.has(base)) pairMap.set(base, new Map()); if (!pairMap.has(quote)) pairMap.set(quote, new Map()); pairMap.get(base).set(quote, parseFloat(price)); pairMap.get(quote).set(base, 1 / parseFloat(price)); // 添加一条反向边 } // 使用 BFS 查找单个对的转换率的辅助函数 const findConversionRate = (a, b) => { a = a.toLowerCase(); b = b.toLowerCase(); if (a === b) return 1; // 直接转换 const queue = [[a, 1]]; const visited = new Set([a]); while (queue.length > 0) { const [currentToken, currentRate] = queue.shift(); // 出队列 if (currentToken === b) return currentRate; for (const [nextToken, rate] of (pairMap.get(currentToken) || new Map())) { if (!visited.has(nextToken)) { visited.add(nextToken); queue.push([nextToken, currentRate * rate]); } } } return null; // 路径没找到 }; // 迭代列表并查找转换率 const results = pairs.map(([a, b]) => findConversionRate(a, b)); return results; } catch (error) { console.error("Error fetching or processing data:", error); return pairs.map(() => null); // 如果有错误,则返回每对的 null } } // Example usage: (async () => { const conversionRates = await getToken([['btc', 'trx'], ['usd', 'steem']]); console.log('兑换结果:', conversionRates); })();
简单的代码说明:
这个修改后的函数现在可以接受一个数组,并在一次Poloniex API调用中返回数组里每个配对的兑换率。
英文:Crypto Token Exchange Rate Computation Based on Breadth First Search Algorithm on Poloniex API
2024-11-15 06:00:07
上周刚过40岁生日,媳妇带我去剑桥的一家网红餐厅——The Ivy Cambridge Brasserie。这家餐厅是朋友推荐的,和那家Trinity一样很有名,可惜我们在剑桥待了近10年才知道。
The Ivy Cambridge Brasserie 是剑桥市中心一家备受欢迎的网红餐厅,位于历史悠久的 Trinity Street。餐厅设计时尚典雅,融合了现代与经典元素,为食客提供了一个舒适而奢华的用餐环境。这里的菜单丰富多样,覆盖全天用餐,从早餐到晚餐以及下午茶,提供英式经典美食如松露鸡肉派、英式早餐等,也有一些国际风味的菜肴。得天独厚的位置和独特的氛围使得 The Ivy Cambridge Brasserie 成为剑桥旅客和当地居民的打卡地标。
餐厅地址是:City Center, 16 Trinity Street, Cambridge, CB2 1TB。
The Ivy Cambridge Brasserie 是位于剑桥市中心的网红餐厅,地址在 16 Trinity Street。这家餐厅因其优雅的装潢、友好的服务和高质量的菜品而备受欢迎。餐厅供应多样的英式和国际美食,从嫩滑的牛排到精致的甜点巧克力蛋糕,都深受食客喜爱。这里的氛围轻松惬意,适合朋友聚餐或庆祝特别场合,是剑桥不可错过的美食体验地之一。
原本以为它是个小酒吧,结果里面挺大的,还发现有不少中国人。服务我们的小姐姐看起来像是印度人,年纪很轻,脸小眼大,说话也很温柔。
我们俩的消费是190英镑,包含了12.5%的服务费。这个价格算是比较贵的了,我们还点了一个生日巧克力蛋糕做甜点。媳妇说生日还是要有个仪式感的。
服务员还当场淋上巧克力。
巧的是,离我们不远的另一桌客人也点了同样的巧克力生日蛋糕。
总的来说,这家餐厅值得二刷三刷。首先,服务很好,其次,上菜速度快,再者,味道也很棒。牛排非常嫩,我点了Red程度的,切开后能看到鲜红多汁的肉。开胃菜的三文鱼也不错,媳妇点的龙虾面也很赞,只是份量有点少。不过这样也好,吃得太饱反而不好,毕竟吃太多了就不容易觉得好吃了。
本文一共 1162 个汉字, 你数一下对不对.2024-11-14 04:29:19
前几天过了40岁生日,正式步入了四十不惑的年龄。
“四十不惑” 是中国古代儒家思想中的一个成语,出自《论语·为政》一书,原文是“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩”。这句话表达了孔子对人生各个阶段的理解和期望。
“四十不惑”的意思是指一个人到了四十岁,已经积累了足够的经验和智慧,不再轻易受到外界的干扰或困惑。这个年龄段的人对自己的人生观、价值观有了比较清晰的认知,能够判断是非,不会被事物表象或外界的干扰所迷惑。
在现代语境下,“四十不惑”常被理解为人到中年,对生活、工作和人际关系有了更成熟的态度,有自己的独立见解和判断,不再轻易摇摆或迷茫。
没过几天,就收到了英国NHS(全民医保)的短信,说我可以去做个免费体检(身体健康检查)。
根据所给的电话,我打过去询问,得知,这是个第三方的公司,和当地的市政厅合作,给居民提供免费的身体检查,不过有三个条件:
所以,我不符合条件,毕竟我这一次全面体检就是半年前回国的时候,我顺便问了一下身体检查有啥项目,被告知就是很基本的那几项:身高、体重、血压、血常规、尿检。毕竟英国全民医保,并不可能给你像国内那种体检套餐没事做个MRI核磁共震或者是X光。英国的理念是健康的人不需要身体检查,有问题才会对症下药/检查。
第三方体检机构表示,如果有任何问题或感到不适,应该先去找GP全科医生。以上三个条件中,第一条感觉是有商量的空间的。我还特别问了什么样的检查算体检。不过无所谓,反正公司有福利,每年都可以安排一次体检,刚好下周就约到了公司的体检。
2024-11-13 23:36:47
英国的 NHS 附加费(NHS Surcharge) 是针对非英国居民的医疗附加费用,全称为 Immigration Health Surcharge (IHS),也叫移民健康附加费。自 2015 年开始实施,所有申请英国签证、并在英国停留六个月以上的非居民都需缴纳该费用。这笔费用让签证持有者可以在 NHS 体系下享受与英国居民相同的大部分医疗服务,而无需支付额外费用。以下是 IHS 的详细介绍:
IHS 的费用根据签证类型和申请人的年限来计算,目前的标准为每年 624 英镑(儿童则是每年 470 英镑)。
费用通常会在签证申请过程中一次性支付,计算方式为申请人在英国停留的年数乘以相应的年费。若停留时间不满半年,则按半年标准收费。
所有在英国停留超过 6 个月的非英国居民,包括工作签证、学生签证、家庭签证和其他长期签证持有者,都需支付 NHS 附加费。
部分人群可获得减免或豁免,例如欧盟永久居留持有者、人道主义签证申请人以及一些短期访问签证申请者。
NHS 附加费需在申请签证时预先缴纳,通常会和签证申请费一起支付。
如果签证被拒,IHS 费用将被全额退还。当年我第一次给我媳妇办签证的时候因材料没准备好就签证被拒了,第一次拒的时候就给退了这个费用。
支付了 NHS 附加费后,签证持有者在英国可以享受 NHS 提供的大部分免费服务,如家庭医生(GP)诊疗、急诊服务、住院治疗、产前和产后护理等。
比如:我在英国生的两孩子都是免费的:儿子在英国出生了..
但某些服务仍需额外付费,如处方药、牙科和视力检查等,这些项目与英国居民的收费标准相同。
IHS 费用在2018年、2020年都有过涨幅,且可能随着时间推移继续上涨,以应对 NHS 系统增加的成本和资源需求。
如果签证被拒,或者提前离开英国(且未持有有效签证),可以申请部分或全部 NHS 附加费的退款。
如签证被缩短到低于 6 个月,也可以申请部分退款。
NHS 附加费帮助英国政府为 NHS 系统筹集资金,以保障更多人享受免费或低费用的医疗服务。对于在英长居或长期工作的签证持有者,这项费用可以有效减少在 NHS 下享受医疗服务的整体开支。