我们公司自己开发的应用程序A可以生成一个符合国际标准的XML文件
通过什么样的方式传递给医院的HIS,EMR等系统B呢?(备注:应用程序A和应用程序B不是同一家公司开发的系统)小弟在此先谢谢了啊

解决方案 »

  1.   

    如果两个程序之间没有互相调用的接口,貌似只能想办法将文件存入B程序调用xml文件的文件夹内了。
      

  2.   

    跟我们公司做的产品类似,C/S架构系统,通过自己拟定的通讯协议,将xml文件发送给服务器,然后服务器再解析。虽然不是一家公司开发的软件,但是你们可以联调,这个应该是必不可少的工作。
      

  3.   

    你要知道B程序是否有调用XML文件,调用的XML文件名是什么,XML的结构是什么,有哪些节点.
      

  4.   

    我在补充下刚才的问题吧:首先不同的医疗软件之间通信必须遵循国际标准HL7(health level seven),而HL7有对XML的词汇,结构,格式等有标准的描述。
    请各位指导小弟一下哦
      

  5.   

    只有遵循了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>
      

  6.   

    既然是标准的XML就可以通过socket发送过去,因为标准XML本身就是一个字符串,传送过去之后的解析可以根据双方协议,按标准XML来解析。如果XML本身数据过大,也可以通过把XML生成文件,储存在文件服务器,然后把文件读取权限串与文件在服务器的路径发送给对方,对方再去文件服务器取,这种方法反应较慢,一般用在XML以M为单位的时候
      

  7.   

    你写个COM程序,或者他写个,这样就好调用了。如果可以监听Socket那就直接发送到他的端口。
      

  8.   

    哪位兄弟能根据我上面的那个XML给简单的写个小例子啊,兄弟真的很迷茫,SOCKET不是传输流数据的吗?而XML有特殊字符(<,/,?)啊,难道跟加载.txt文件一样吗?
      

  9.   

    XML文件可以base64编码啊,收到再解码就可以了。
      

  10.   

    高手啊,的确是要通过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]);//发送数据
    大概思路是这样的吗?
      

  11.   

    我觉得你概念上有误区
    首先
    无论是文件还是字符串
    在传输的时候无论是通过com还是socket
    其实传的都是数据流
    而且你所谓的xml标准和解析也不是问题
    其实问题的关键是接收方要什么
    比如接收方提供了接口接收数据你直接做个string发过去就可以
    如果接收方要文件你给他xml文件即可
    通信是双方的事
    你在这面一味的强调你该怎么样没有什么意义啊
      

  12.   

    用socket传输过去,在服务器端解析就是了!