
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
vrdr-dotnet是一个.NET (C#)代码仓库,主要用于处理生死记录报告(VRDR)相关的Health Level 7 (HL7) Fast Healthcare Interoperability Resources (FHIR)标准。其核心用途包括:生成和消费VRDR FHIR文档、处理VRDR文档交换的FHIR消息,以及在VRDR FHIR记录与跨辖区交换(IJE)Mortality格式之间进行转换,并提供配套的转换微服务。
| VRDR IG | FHIR | 版本 | VRDR.dotnet | VRDR.Messaging |
|---|---|---|---|---|
| STU1 | R4 | V3.1.1 | nuget https://github.com/nightingaleproject/vrdr-dotnet/releases/tag/v3.1.1 | nuget https://github.com/nightingaleproject/vital_records_fhir_messaging/releases/download/v3.1.0/fhir_messaging_for_nvss.pdf |
开发与CLI要求
库使用要求
VRDR库
用途:提供FHIR生死记录库,支持VRDR FHIR的生成、消费及与IJE Mortality格式的转换。
安装:通过NuGet引用:
xml<ItemGroup> ... <PackageReference Include="VRDR" Version="3.1.1" /> ... </ItemGroup>
或本地引用项目文件:
xml<Project Sdk="Microsoft.NET.Sdk"> ... <ItemGroup> <ProjectReference Include="..\VRDR\DeathRecord.csproj" /> ... </ItemGroup> </Project>
生成VRDR FHIR记录示例:
csusing VRDR; DeathRecord deathRecord = new DeathRecord(); deathRecord.Identifier = "42"; // 设置记录ID deathRecord.GivenNames = new string[] { "First", "Middle" }; // 死者名 deathRecord.FamilyName = "Last"; // 死者姓 deathRecord.COD1A = "Rupture of myocardium"; // 死因第一部分a行 deathRecord.INTERVAL1A = "Minutes"; // 死因间隔 // 设置死因编码 Dictionary<string, string> exampleCode = new Dictionary<string, string>(); exampleCode.Add("code", "I21.0"); exampleCode.Add("system", "ICD-10"); exampleCode.Add("display", "Acute transmural myocardial infarction of anterior wall"); deathRecord.CODE1A = exampleCode; // 设置怀孕状态 Dictionary<string, string> code = new Dictionary<string, string>(); code.Add("code", "PHC1260"); code.Add("system", "urn:oid:2.16.840.1.114222.4.5.274"); code.Add("display", "Not pregnant within past year"); deathRecord.PregnancyStatus = code; deathRecord.ExaminerContacted = false; // 检查者是否联系 deathRecord.DateOfDeath = "2018-07-10T10:04:00+00:00"; // 死亡日期时间 Console.WriteLine(deathRecord.ToJSON()); // 输出JSON格式记录
消费VRDR FHIR记录示例:
csusing VRDR; // 读取FHIR XML文件 string xml = File.ReadAllText("./example_vrdr_fhir_record.xml"); // 从XML构造DeathRecord对象 DeathRecord deathRecord = new DeathRecord(xml); // 输出记录详情 Console.WriteLine($"死者姓: {deathRecord.FamilyName}"); Console.WriteLine($"死亡日期时间: {deathRecord.DateOfDeath}"); Console.WriteLine($"死因第一部分a行: {deathRecord.COD1A}"); Console.WriteLine($"死因间隔a行: {deathRecord.INTERVAL1A}"); Console.WriteLine($"死因编码a行: {String.Join(", ", deathRecord.CODE1A.Select(x => x.Key + "=" + x.Value).ToArray())}");
FHIR与IJE格式转换示例:
csusing VRDR; string xml = File.ReadAllText("./example_vrdr_fhir_record.xml"); DeathRecord deathRecord = new DeathRecord(xml); IJEMortality ije = new IJEMortality(deathRecord); string ijeString = ije.ToString(); // 转换为IJE字符串 Console.WriteLine(ijeString);
csusing VRDR; IJEMortality ije = new IJEMortality("..."); // 从IJE字符串构造 DeathRecord deathRecord = ije.ToDeathRecord(); Console.WriteLine(deathRecord.ToJSON()); // 输出JSON格式FHIR记录
VRDR.Messaging库
用途:提供创建和解析VRDR文档交换FHIR消息的类。
安装:通过NuGet引用(自动包含VRDR库):
xml<ItemGroup> ... <PackageReference Include="VRDR.Messaging" Version="3.1.1" /> ... </ItemGroup>
或本地引用项目文件:
xml<Project Sdk="Microsoft.NET.Sdk"> ... <ItemGroup> <ProjectReference Include="..\VRDR.Messaging\VRDRMessaging.csproj" /> ... </ItemGroup> </Project>
消息处理示例(编码响应消息):
csusing VRDR; // 创建编码响应消息 CodingResponseMessage message = new CodingResponseMessage("https://example.org/jurisdiction/endpoint"); // 设置业务标识符 message.CertificateNumber = "..."; message.StateAuxiliaryIdentifier = "..."; message.NCHSIdentifier = "..."; // 设置根本死因编码 message.UnderlyingCauseOfDeath = "<icd code>"; // 设置记录轴编码 var recordAxisCodes = new List<string> { "<icd code>", "<icd code>", "<icd code>", "<icd code>" }; message.CauseOfDeathRecordAxis = recordAxisCodes; // 设置实体轴编码 var builder = new CauseOfDeathEntityAxisBuilder(); builder.Add(<lineNumber>, <positionInLine>, <icd code>); // 添加实体轴编码 message.CauseOfDeathEntityAxis = builder.ToCauseOfDeathEntityAxis(); string jsonMessage = message.ToJSON(); // 转换为JSON消息
VRDR.CLI工具
用途:命令行工具,支持FHIR与IJE格式转换、文档验证等操作。
使用示例(.NET Core 3.1):
bash# 生成示例FHIR记录并输出XML和JSON dotnet run # FHIR XML转IJE dotnet run 2ije 1.xml # IJE转FHIR XML dotnet run ije2xml 1.MOR # IJE转FHIR JSON dotnet run ije2json 1.MOR # FHIR XML转JSON dotnet run xml2json 1.xml # FHIR JSON转XML dotnet run json2xml 1.json # 验证FHIR XML dotnet run checkXml 1.xml
注:使用.NET Core 2.1时,需在命令后添加--framework netcoreapp2.1
VRDR.HTTP微服务
用途:提供HTTP端点,支持IJE与FHIR(XML/JSON)格式的转换。
端点:
http://<server>:8080/xml:请求FHIR XML格式记录http://<server>:8080/json:请求FHIR JSON格式记录http://<server>:8080/ije:请求IJE格式记录请求头:需包含Content-Type,指定请求体格式(application/fhir+json、application/fhir+xml或application/ije)。
Docker部署:
bash# 构建Docker镜像 dotnet publish docker build -t vrdr-microservice -f ./VRDR.HTTP/Dockerfile . # 运行容器 docker run -p 8080:8080 vrdr-microservice
本地运行(不使用Docker):
bashdotnet run
服务将监听http://localhost:8080。
Copyright 2018, 2019, 2020 The MITRE Corporation
基于Apache License 2.0许可。详情参见[***]
如有问题或反馈,请发送邮件至:***
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务