传送XML文件的通信方式 我们公司自己开发的应用程序A可以生成一个符合国际标准的XML文件通过什么样的方式传递给医院的HIS,EMR等系统B呢?(备注:应用程序A和应用程序B不是同一家公司开发的系统)小弟在此先谢谢了啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果两个程序之间没有互相调用的接口,貌似只能想办法将文件存入B程序调用xml文件的文件夹内了。 跟我们公司做的产品类似,C/S架构系统,通过自己拟定的通讯协议,将xml文件发送给服务器,然后服务器再解析。虽然不是一家公司开发的软件,但是你们可以联调,这个应该是必不可少的工作。 你要知道B程序是否有调用XML文件,调用的XML文件名是什么,XML的结构是什么,有哪些节点. 我在补充下刚才的问题吧:首先不同的医疗软件之间通信必须遵循国际标准HL7(health level seven),而HL7有对XML的词汇,结构,格式等有标准的描述。请各位指导小弟一下哦 只有遵循了HL7标准的系统才能互相传递和解析该XML文件,比如就这样的XML文件:兄弟们只要帮帮我通信的方式,怎么传就行。 <?xml version="1.0" encoding="utf-8" standalone="no" ?> - <!-- XML Example created by RoseTree 2.8.64 --> - <!-- Example copyright 2003 by Health Level Seven, Inc. --> - <Message xmlns="urn:hl7-org:v3/MCCI_HD000300" xmlns:xsi="http://www.w3.org/2002/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3/MCCI_HD000300 MCCI_HD000300.xsd"> <id root="2.16.840.1.113883.19.3.2409" extension="1-976-245" assigningAuthorityName="Hospital E - Patients" validTime="-2003-10-05" /> <creationTime value="2002-02-11T14:30:35.16-06:00" /> <securityText>The string.</securityText> <versionId>The string.</versionId> <interactionId root="2.16.840.1.113883.19.3.2409" extension="1-976-245" assigningAuthorityName="Hospital E - Patients" validTime="-2003-10-05" /> <processingCode code="CS-CODE" /> <processingModeCode code="CS-CODE" /> <acceptAckCode code="CS-CODE" /> <applicationAckCode code="CS-CODE" /> <sequenceNumber value="123" /> <attachmentText mediaType="text/plain">This is a brief note.</attachmentText> - <communicationFunctionRsp> <typeCode code="RSP" /> <telecom value="555-555-2005" use="H" /> - <entityRsp> <classCode code="ENT" /> <determinerCode code="INSTANCE" /> <id root="2.16.840.1.113883.19.3.2409" extension="1-976-245" assigningAuthorityName="Hospital E - Patients" validTime="-2003-10-05" /> - <name use="L"> <given>An Entity Name</given> </name> <telecom value="555-555-2005" use="H" /> </entityRsp> </communicationFunctionRsp>- <communicationFunctionRcv> <typeCode code="RCV" /> <telecom value="555-555-2005" use="H" /> - <deviceRcv> 既然是标准的XML就可以通过socket发送过去,因为标准XML本身就是一个字符串,传送过去之后的解析可以根据双方协议,按标准XML来解析。如果XML本身数据过大,也可以通过把XML生成文件,储存在文件服务器,然后把文件读取权限串与文件在服务器的路径发送给对方,对方再去文件服务器取,这种方法反应较慢,一般用在XML以M为单位的时候 你写个COM程序,或者他写个,这样就好调用了。如果可以监听Socket那就直接发送到他的端口。 哪位兄弟能根据我上面的那个XML给简单的写个小例子啊,兄弟真的很迷茫,SOCKET不是传输流数据的吗?而XML有特殊字符(<,/,?)啊,难道跟加载.txt文件一样吗? XML文件可以base64编码啊,收到再解码就可以了。 高手啊,的确是要通过base64编码的,对方在解码就可以了,你看我写下大概的思路,是不是这样的:HFILE hFile;BYTE *Buffer;_lopen(hFile,"D:\\test.xml"); //读取XML文件int len=_llseek(hFile,0L,FILE_END);_llseek(hFile,0L,FILE_BEGIN);Buffer=new BYTE[len];_lread(hFile,Buffer);char b64[len]=base64(Buffer,len);//base64编码转换send(b64[len]);//发送数据大概思路是这样的吗? 我觉得你概念上有误区首先无论是文件还是字符串在传输的时候无论是通过com还是socket其实传的都是数据流而且你所谓的xml标准和解析也不是问题其实问题的关键是接收方要什么比如接收方提供了接口接收数据你直接做个string发过去就可以如果接收方要文件你给他xml文件即可通信是双方的事你在这面一味的强调你该怎么样没有什么意义啊 用socket传输过去,在服务器端解析就是了! unicode 中文转换 16位的dib MFC 这种列表框怎么实现。。。求帮助。。。。 考研有什么好处,不考又有何坏处呢? [原创]嘿嘿,我抓到了VC++ 6.0的一个Bug! 如何指定listview的值? 如何通过程序知道,操作系统安装了什么补丁? 怎么知道表中指定字段的类型? 再问FileOpen~~~~~ 用vc++编的程序在其他机器上运行,会出现***.dll文件没有找到的情况。。。 十万火急!!!!关于对话框与CView的问题 mfc 新建或关闭文件询问是否保存问题!急!!!!
请各位指导小弟一下哦
兄弟们只要帮帮我通信的方式,怎么传就行。
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
- <!-- XML Example created by RoseTree 2.8.64
-->
- <!-- Example copyright 2003 by Health Level Seven, Inc.
-->
- <Message xmlns="urn:hl7-org:v3/MCCI_HD000300" xmlns:xsi="http://www.w3.org/2002/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3/MCCI_HD000300 MCCI_HD000300.xsd">
<id root="2.16.840.1.113883.19.3.2409" extension="1-976-245" assigningAuthorityName="Hospital E - Patients" validTime="-2003-10-05" />
<creationTime value="2002-02-11T14:30:35.16-06:00" />
<securityText>The string.</securityText>
<versionId>The string.</versionId>
<interactionId root="2.16.840.1.113883.19.3.2409" extension="1-976-245" assigningAuthorityName="Hospital E - Patients" validTime="-2003-10-05" />
<processingCode code="CS-CODE" />
<processingModeCode code="CS-CODE" />
<acceptAckCode code="CS-CODE" />
<applicationAckCode code="CS-CODE" />
<sequenceNumber value="123" />
<attachmentText mediaType="text/plain">This is a brief note.</attachmentText>
- <communicationFunctionRsp>
<typeCode code="RSP" />
<telecom value="555-555-2005" use="H" />
- <entityRsp>
<classCode code="ENT" />
<determinerCode code="INSTANCE" />
<id root="2.16.840.1.113883.19.3.2409" extension="1-976-245" assigningAuthorityName="Hospital E - Patients" validTime="-2003-10-05" />
- <name use="L">
<given>An Entity Name</given>
</name>
<telecom value="555-555-2005" use="H" />
</entityRsp>
</communicationFunctionRsp>
- <communicationFunctionRcv>
<typeCode code="RCV" />
<telecom value="555-555-2005" use="H" />
- <deviceRcv>
BYTE *Buffer;
_lopen(hFile,"D:\\test.xml"); //读取XML文件int len=_llseek(hFile,0L,FILE_END);
_llseek(hFile,0L,FILE_BEGIN);Buffer=new BYTE[len];
_lread(hFile,Buffer);char b64[len]=base64(Buffer,len);//base64编码转换send(b64[len]);//发送数据
大概思路是这样的吗?
首先
无论是文件还是字符串
在传输的时候无论是通过com还是socket
其实传的都是数据流
而且你所谓的xml标准和解析也不是问题
其实问题的关键是接收方要什么
比如接收方提供了接口接收数据你直接做个string发过去就可以
如果接收方要文件你给他xml文件即可
通信是双方的事
你在这面一味的强调你该怎么样没有什么意义啊