您的位置: 首页 » 法律资料网 » 法律论文 »

医疗机构在临床药品安全事件中的法律责任问题/李洪奇

时间:2024-07-23 02:16:23 来源: 法律资料网 作者:法律资料网 阅读:8802
下载地址: 点击此处下载
医疗机构在临床药品安全事件中的法律责任问题

北京市中济律师事务所医药卫生法律部
李洪奇主任律师

近年来,临床诊疗活动中发生的药品安全事件,越来越受到社会各界的关注,引发了人们对其相关法律责任的深度思考。据统计,自1998年至今,我国先后发生了11起重大药品安全事件,从西沙必利(普瑞博思)、苯丙醇胺(PPA)、西伐他汀(拜斯亭)事件,到马兜铃酸(关木通)、罗非昔布(万络)、加替沙星(天坤),再到2006年 “齐二药”亮菌甲素注射液和“安徽华源”克林霉素磷酸酯注射液 (欣弗)事件等,造成了严重的医患矛盾和社会问题。
临床药品安全事件发生后,首先受到冲击的是医疗机构及医务人员,因为在患者死亡或损害的真正原因查明之前,事件爆发的表现形式一般都是医患纠纷,医疗机构自然成了患者及家属投诉、告诉或申诉的主要对象。
那么,是不是每发生临床药品安全事件,医疗机构都需要承担法律责任呢?答案是否定的。下面我们通过案例分析,探究我国现行法律法规是如何认定医疗机构在药品安全事件的法律责任的。

一,发生单纯的“药品不良反应”,医疗机构不承担法律责任。
案例1: 48岁男性患者“肝硬化”进行腹部CT增强扫描,注射100ml ( Omnipaque 300mgI/ml) “碘海醇”,出现“脸上刺痒,嘴唇发麻,皮肤潮红等”造影剂过敏反应症状,医务人员进行了对因对症处理。后患者在楼道里摔倒,紧急颅脑CT检查:外伤性蛛网膜下腔出血,终因“呼吸循环衰竭”抢救无效死亡。
此案例属于“药品不良反应”。
世界卫生组织(WHO)把药品不良反应定义为 "any response to a drug which is noxious and unintended, and which occurs at doses normally used in humans for prophylaxis, diagnosis, or therapy of disease, or for the modification of physiological function." (作者译:使用正常剂量药品预防、诊断、治疗疾病或改善生理机能时,发生的任何非期待的有害反应)。可见,不良反应不存在药品本身和用药过程中的过错问题。
1999年我国国家药品监督管理局和卫生部联合发布的《药品不良反应监测管理办法(试行)》中规定:“药品不良反应主要是指合格药品在正常用法用量下出现的与用药目的无关的或意外的有害反应”。 2004年3月修正颁布的《药品不良反应报告和监测管理办法》继续沿用这一概念。这一法定概念包含四个要素:一是药品必须合格。假冒伪劣药品及其他不合格药品的人身损害不能认定为“不良反应”;二是用药必须严格符合药品明示的规定,或遵守医师的正确医瞩。不正常、不合理的用药不在此列;三是发生了有害反应,对患者的生命和健康造成了损害;四是这种有害反应是与治疗目的无关的或者是出乎事先预料的。以上四要素缺一不可,必须同时满足才可认定为药品不良反应。
按照上述药品不良反应的法定概念,临床药品安全事件一经认定为“不良反应”,实际上已经排除了人为过失和过错。按照我国法律规定,诊疗行为的归责原则适用推定过错责任原则,本质上仍属于过错责任范畴,只是要求“举证责任倒置”,因此医疗机构只要证明自己的诊疗行为没有过错,就不必承担法律责任;特殊情况下,人民法院行使自由裁量权,根据实际情况,由当事人分担民事责任,但这不具普遍性。
同时,《药品不良反应报告和监测管理办法》第30条规定:“药品不良反应报告的内容和统计资料是加强药品监督管理、指导合理用药的依据,不作为医疗事故、医疗诉讼和处理药品质量事故的依据”,这一规定体现了现行法律法规不支持单纯以药物不良反应提起医疗诉讼的原则立场。2002年9月1号实施的《医疗事故处理条例》也规定,“在医疗活动中由于患者病情异常或者患者体质特殊而发生医疗以外的”和“在现有医学科学技术条件下,发生无法预料或者不能防范的不良后果的”不是医疗事故,从法律规定上把不良反应排除在医疗事故之外。《条例》同时规定,“不属于医疗事故的,医疗机构不承担赔偿责任”。
本案中,医疗机构及医务人员,没有违反“碘海醇”的使用规定,没有违反医疗卫生管理法律、行政法规、部门规章和诊疗护理规范、常规,不存在医疗过失或过错,并且在患者发生药品不良反应后,及时进行了对因对症处理,患者死亡系“外伤性蛛网膜下腔出血,呼吸循环衰竭”所致,与医疗行为无关。

二、由假劣药品引起的“药品不良事件”,医疗机构是否承担法律责任,取决于其医疗行为是否存在过错。
案例2“欣弗事件”。安徽华源在生产克林霉素磷酸酯葡萄糖注射液(欣弗)过程中,违反规定生产,未按批准的工艺参数灭菌,降低灭菌温度,缩短灭菌时间,增加灭菌柜装载量,影响了灭菌效果。结果造成全国367人使用“欣弗”后出现胸闷、心悸、心慌、寒战、肾区疼痛、腹痛、腹泻、恶心、呕吐、过敏性休克、肝肾功能损害等临床症状,其中13人抢救无效死亡。
此案例属于因产品质量问题导致的“药品不良事件”。
“药品不良事件”是指所有与药品使用有关的损害性事件,包括药品不良反应以及其他一切非预期药物作用导致的意外事件。
相对于不良反应,药品不良事件的概念内涵和外延都被扩大。国际上认可的定义是"any injury resulting from medical interventions related to a drug" (作者译:任何跟药品有关的医疗干预措施所产生的损害)。显然,这一定义既包括非人为过失的不良反应,也包括人为过失导致的其他负面药物作用。
在我国,由假劣药品引起的药品不良事件应适用《民法通则》、《产品质量法》、最高人民法院《关于审理人身损害赔偿案件适用法律若干问题的解释》等法律法规。
《民法通则》第122条规定,因产品质量不合格造成他人财产、人身损害的,产品制造者、销售者应当依法承担民事责任。运输者、仓储者对此负有责任的,产品制造者、销售者有权要求赔偿损失。《产品质量法》第43条“因产品存在缺陷造成人身、他人财产损害的,受害人可以向产品的生产者要求赔偿,也可以向产品的销售者要求赔偿。属于产品的生产者的责任,产品的销售者赔偿的,产品的销售者有权向产品的生产者追偿。属于产品的销售者的责任,产品的生产者赔偿的,产品的生产者有权向产品的销售者追偿。”
由此可见,一旦存在质量缺陷的药品被认定为假药或劣药,假劣药品生产企业就要承担“无过错责任”,即不以其主观上是否存在过错为要件,企业必须对法律规定的免责事由承担举证责任,举证不能则要承担法律责任。
本案中,如果医疗机构的使用“欣弗”时,严格按处方药品规定,正确把握“欣弗”的用药剂量、用药范围以及适应症和禁忌症等,其医疗行为不存在过错,则无须承担法律责任,仅由药品生产企业承担最终产品质量责任;如果医疗机构的医疗行为存在过错,则形成了医疗过失侵权责任与产品质量责任相互竟合的情形,患者可以选择其一要求承担法律责任。

三,临床诊疗过程中医务人员违规用药,医疗机构应当承担法律责任。
案例3: 70岁男性患者因“发作性心前区闷痛22年,加重1周”入院,主要是降压、降糖、降脂等维持治疗;住院期间生化检验发现“尿酸”偏高,在患者及家属不知情的情况下,大夫为患者开具了“别嘌呤醇”,同时静脉点滴“血栓通”,当日即发生“药物性过敏反应”,紧急停用“血栓通”,但过敏反应日益严重,直到1周才停用“别嘌呤醇”,患者最终“大疱松懈性药疹”导致“呼吸循环衰竭”而死亡。而该医院门诊病历记载“别嘌呤醇过敏!青霉素过敏!”
本案例系用药过错引发的“药品不良事件”,属于“医疗过失”或“医疗事故”等医疗纠纷。
按照我国现行法律规定,医疗纠纷的案由有三种: 1,医疗事故损害赔偿纠纷; 2 ,一般医疗损害赔偿纠纷;3 ,医疗服务合同纠纷。三种不同案由的纠纷分别适用《医疗事故处理条例》、《民法通则》和《合同法》等法律规定。
2002 年 4 月 1实施的《关于民事诉讼证据的若干规定》规定:“因医疗行为引起的侵权诉讼,由医疗机构就医疗行为与损害结果之间不存在因果关系及不存在医疗过错承担举证责任。”这是我国把过错推定责任原则以司法解释的形式适用到医疗领域的侵权行为,患者只需要提出侵权事实和理由,医疗机构就必须负担举证责任,证明自己的医疗行为没有过错且没有给患者造成任何损害后果,否则承担不利法律后果,这种负担举证责任的方式在民事法学上称作“举证责任倒置”。
不难看出,处理由用药过错引起的药品不良事件时,除非患者主动适用《合同法》,一般情况下需要适用过错推定责任原则,即侵权行为发生后,受害人只须证明自己的损害后果与医院有关系,不需要证明医院有无过错,而医院必须证明其行为没有过错,如果不能证明自己无过错,法律上即推定其有过错。
本案中,医务人员在开立医嘱,让患者服用“别嘌呤醇”时,忽略了患者“别嘌呤醇过敏!青霉素过敏!”的病史,也未经患者家属“知情同意”,存在疏忽大意或过于自信的过失,且此过失行为直接造成了患者“大疱松懈性药疹”,最终因“呼吸循环衰竭”而死亡,所以,医疗机构作为医疗纠纷民事责任的主体,不能证明其医疗行为与患者死亡结果之间不存在因果关系以及医疗行为不存在过错,故应当承担相应法律责任。

如前所述,临床诊疗活动中发生的药品安全事件,引起了公众的极大关注和深度思考。虽然我国正在建立健全医药卫生管理法律法规,将处理包括药品不良反应在内的药品不良事件纳入了法制轨道,但实践中仍然存在着法律障碍和实际困难,影响到此类民事纠纷的顺利解决,突出表现在“责任认定”和“赔偿机制”两个方面。
近年来连续发生的临床药品安全事件,给患者、医者乃至全社会造成了难以弥补的创伤,但若能以此一系列不幸事件作为代价催生出行之有效的法律规定或解决机制,确保医疗机构和药品生产经营企业各尽其职、各负其责,则必将促进我国医疗服务和医药科技的发展,加快我国社会文明的进步。

参考:
1, TORT LAW Cavendish Publishing Limited
2, Pharmacotherapy 19(10):1185-1187, 1999. © 1999 Pharmacotherapy Publications
3, "Descriptions of adverse drug events should be standardized " Saeed A Khan, Senior researcher. Pharmacology and Clinical Pharmacology Department, Turku University Central Hospital, Turku

杭州市建设委员会关于印发《杭州市预拌混凝土和预制构件质量监督管理办法》的通知

浙江省杭州市建设委员会


市建委关于印发《杭州市预拌混凝土和预制构件质量监督管理办法》的通知

杭建工发[2006]472号


各区(开发区)、县(市)建设局,市建设工程质量安全监督总站,各有关单位:

《杭州市预拌混凝土和预制构件企业质量监督管理办法》已经市政府法律审查通过,现予印发,请遵照执行。



杭州市建设委员会

二OO六年八月三十一日



杭州市预拌混凝土和预制构件质量

监督管理办法



一、总  则

第一条 为加强我市预拌混凝土和预制构件质量管理,确保建设工程质量,根据《中华人民共和国建筑法》、《建设工程质量管理条例》及《杭州市商品混凝土管理办法》、《杭州市建设工程质量监督管理办法》等法律、法规、国家有关现行标准和浙江省建设厅《关于进一步加强预拌混凝土质量管理的意见》,制定本办法。

第二条 本办法适用于杭州市行政区域内房屋建筑和市政基础设施工程预拌混凝土和预制构件(包括预制混凝土梁、板、桩、桁架及其它混凝土预制构件等)生产和使用的质量监督管理。

第三条 杭州市建设委员会(以下简称市建委)负责全市预拌混凝土和预制构件质量监督管理工作,并委托杭州市建设工程质量安全监督总站负责对市区(含高新滨江区和经济技术开发区、风景名胜区、之江度假区)范围内预拌混凝土和预制构件企业生产过程中的质量行为进行监督。其他县(市)和萧山、余杭区建设行政主管部门或其委托的建设工程质量监督机构具体负责对辖区内注册的预拌混凝土和预制构件企业生产过程中的质量行为进行监督。

第四条 从事预拌混凝土和预制构件生产的企业必须持有建设行政主管部门颁发的资质证书,并在企业资质等级许可的业务范围内从事生产、经营活动。



二、生产管理

第五条 预拌混凝土和预制构件生产企业应当建立和完善质量保证体系,制定必要的技术管理和质量检查制度。

第六条 预拌混凝土和预制构件生产企业应加强原材料的监管和检验工作,应有原材料进场的验收记录(包括厂名或产地、品牌规格、数量、出厂质量证明书和有效期内质保书),进场复验合格后分规格储存,不得混仓。

第七条 预拌混凝土和预制构件生产企业的试验室应经市建委考核认可,符合相应的资质要求。力学性能试验数据应通过自动采集实现与质量监督机构联网即时传输。

试验室应实行主任负责制,并配备符合规定要求的专职技术(质量)负责人。主要技术人员变更时应及时将相关材料报送质量监督机构和市建委备案。

第八条 企业从事试验人员必须经省建设行政主管部门考核合格后持证上岗。



三、质量管理

第九条 预拌混凝土和预制构件生产企业应根据国家相关规范、标准及供货合同的要求对出厂的混凝土和预制构件进行检验,出具出厂合格证,并应记录存档。

第十条 预拌混凝土进入施工现场时,企业应提供符合国家质量验收标准的“预拌混凝土出厂合格证”;施工单位应当在监理单位的旁站监理下,对进场的每车混凝土进行验收,并在交货单上签字确认。施工单位除按交货单确认预拌混凝土的品种、类别、数量外,还应根据国家标准及合同约定进行交货检验,包括查验预拌混凝土的拌和时间,记录搅拌车的进场时间和卸料时间,测定预拌混凝土的坍落度,取样测定预拌混凝土拌和物的强度等。

第十一条 预制构件进入施工现场时,企业应提供符合国家质量验收标准的“预制构件出厂合格证”;使用方应按国家有关规定及合同约定的要求进行验收,并在交货单上签字确认。

第十二条 预拌混凝土和预制构件生产企业应对混凝土和预制构件的生产及运输质量负责。施工单位对预拌混凝土的浇筑、振捣和养护质量负责。

第十三条 预拌混凝土进入施工现场后严禁加水。

第十四条 施工单位应根据预拌混凝土的特点制定混凝土工程施工方案,按照规定程序审批后组织施工。

第十五条 预拌混凝土生产企业如对进场的混凝土浇注和养护有特殊要求的,应对施工单位进行施工交底,施工、监理单位应做好交底记录存档,并按照交底要求组织施工和监理。

混凝土施工结束后,施工单位应严格按规范、标准要求并根据预拌混凝土的不同特点进行养护,保证养护质量。

第十六条 监理单位应认真履行职责,严格按照有关标准、规范对预拌混凝土施工、养护、检测全过程进行监理。对不符合要求的应及时加以纠正;对工程质量缺陷应及时做出处理指令,确保混凝土工程质量满足设计要求。

第十七条 建设单位、监理单位、施工单位对预拌混凝土和预制构件质量有异议时,应及时告知生产企业,生产企业应予以说明。发现可能影响工程质量的问题应及时上报建设行政主管部门或所委托的质量监督机构。



四、监督管理

第十八条 建设行政主管部门或所委托质量监督机构应对预拌混凝土和预制构件的生产及使用进行质量监督检查,主要内容包括:

(一)检查预拌混凝土和预制构件生产企业的质量保证体系的运行状况;

(二)定期或不定期对预拌混凝土和预制构件生产企业所使用的主要原材料和产品质量进行抽检;对预拌混凝土和预制构件生产企业试验室进行监督检查;对预拌混凝土和预制构件实体质量进行抽检等;

(三)依法查处预拌混凝土和预制构件生产及施工过程中出现的违法违规行为,查处情况及时上报市建委。

监督检查应符合行政执法的要求,并可采取定期检查和不定期抽查等方式。对每次检查的内容、发现的问题、整改要求及处理情况应做出记录,并由参加检查的监督人员和被检查企业的有关负责人签字后归档。被检查企业的有关负责人拒绝签字的,监督人员应将情况记录在案。

第十九条 各级建设行政主管部门和委托的质量监督机构实施监督检查时,可行使以下职权:

(一)要求被检查单位提供有关质量管理的文件和资料;

(二)进入预拌混凝土和预制构件生产企业以及相关工程施工现场进行抽查;

(三)对有证据表明预拌混凝土和预制构件生产企业弄虚作假、管理混乱或存在质量事故隐患的,对其技术资料予以暂时封存;

(四)发现有影响工程质量的问题时,责令有关单位及时采取措施予以整改,消除质量事故隐患。

第二十条 工程使用预拌混凝土和预制构件,原则上应就近采购。特殊情况需要外埠进杭企业生产供应的,生产企业应在承接供应业务后到业务所在地的区级建设行政主管部门或委托的质量监督机构申请工程项目登记。

第二十一条 建设行政主管部门和委托的质量监督机构应加强对预拌混凝土和预制构件生产企业及其质量管理人员质量行为的动态管理,对监督检查中发现的问题应当按规定权限进行处理,并及时组织复查,督促落实整改;对不良行为应记入信用档案并在建委诚信网上曝光;对违反有关法规规定的行为应依法予以行政处罚。

检查发现企业试验室的试验能力达不到要求的,必须立即责令进行整改,整改期限内不得进行相应检测项目的检测,有关检测必须委托具有相应检验资格的建设工程质量检测机构进行检验。

第二十二条  施工单位未对进场预拌混凝土和预制构件进行验收,未对进场预拌混凝土取样(标养)送检或者未按标准规范要求进行浇筑、振捣和养护,使用拒不整改或限期整改达不到要求的预拌混凝土和预制构件生产企业的产品,造成混凝土及相关工程质量事故的,根据《建设工程质量管理条例》等有关法规予以行政处罚。

因监理、建设单位未履行职责影响混凝土质量或造成相关工程质量事故的,根据有关法规予以行政处罚。

第二十三条  各级建设行政主管部门、委托的质量监督机构及有关人员不得招揽、指定预拌混凝土和预制构件生产供应业务,不得干预预拌混凝土和预制构件企业的正常生产活动。在日常监督管理中玩忽职守、滥用职权、徇私舞弊的,依法给予行政处分;构成犯罪的,依法追究刑事责任。



五、附  则

第二十四条 本办法由杭州市建设委员会负责解释。

第二十五条 本办法自二OO六年十月一日起施行。



关于统一图幅理论面积与图斑椭球面积计算要求的通知

国土资源部


关于统一图幅理论面积与图斑椭球面积计算要求的通知

(国土调查办发〔2008〕32号)


各省、自治区、直辖市第二次土地调查领导小组办公室,国土资源厅(国土环境资源厅、国土资源局、国土资源和房屋管理局、房屋土地资源管理局),解放军土地管理局、新疆生产建设兵团国土资源局:


面积计算是第二次土地调查的一项重要内容,国务院第二次全国土地调查领导小组办公室组织有关专家,依据《第二次全国土地调查技术规程》,对图幅理论面积与图斑椭球面积计算公式进行了细化,明确了面积计算方法,统一了公式中的有关参数,现将《图幅理论面积与图斑椭球面积计算公式及要求》予以印发,请各地严格遵照执行。



附:图幅理论面积与图斑椭球面积计算公式及要求



二〇〇八年三月二十七日

图幅理论面积与图斑椭球面积计算公式及要求

一、 图幅理论面积计算公式
(1)
式中:
a—椭球长半轴(单位:米),α—椭球扁率,b—椭球短半轴(单位:米)。
е²﹦(a²﹣b²)/a²。
A﹦1﹢(3/6)е²﹢(30/80)е4﹢(35/112)е6﹢(630/2304)е8。
B﹦ (1/6)е²﹢(15/80)е4﹢(21/112)е6﹢(420/2304)е8。
C﹦ (3/80)е4﹢ (7/112)е6﹢(180/2304)е8。
D﹦ (1/112)е6﹢ (45/2304)е8。
E﹦ (5/2304)е8。
ΔL—图幅东西图廓的经差(单位:弧度)。
(B2﹣B1)—图幅南北图廓的纬差(单位:弧度),Bm﹦(B1﹢B2)/2。

二、椭球面上任意梯形面积计算公式
(2)
其中:A,B,C,D,E 为常数,按下式计算:
е²﹦(a²﹣b²)/a²
A﹦1﹢(3/6)е²﹢(30/80)е4﹢(35/112)е6﹢(630/2304)е8
B﹦ (1/6)е²﹢(15/80)е4﹢(21/112)е6﹢(420/2304)е8
C﹦ (3/80)е4﹢ (7/112)е6﹢(180/2304)е8
D﹦ (1/112)е6﹢(45/2304)е8
E﹦ (5/2304)е8
式中:a—椭球长半轴(单位:米),b—椭球短半轴(单位:米);
ΔL—图块经差(单位:弧度); (B2﹣B1)—图块纬差(单位:弧度)
Bm﹦(B1﹢B2)/2。

三、高斯投影反解变换( )模型
(若坐标不带带号,则不需减去带号×1000000;)



+中央子午线经度值(孤度) (3)
式中:

公式说明:若坐标为没有带号前缀格式,则不需减去带号×1000000;若坐标为有带号前缀格式,则需减去带号×1000000。

四、计算用到的常数、椭球参数
在计算图幅理论面积与任意图斑椭球面积时,有关常数及保留的位数按给定数值计算。
常数:
π﹦3.14159265358979
206264.8062471
80椭球常数:
= 6378140 = 1/ 298.257
= 6356755.29
= 6.69438499958795E-03
= 6.73950181947292E-03
= 6399596.65198801
相关常数:
k0 = 1.57048687472752E-07
k1 = 5.05250559291393E-03
k2 = 2.98473350966158E-05
k3 = 2.41627215981336E-07
k4 = 2.22241909461273E-09

五、计算中的取位及要求
① 高斯投影反解变换后的B,L以秒为单位,保留到小数点后6位,四舍五入。
② 采用计算机计算时,所有变量数据类型均要定义为双精度。
③ 面积计算结果以平方米为单位,保留一位小数,四舍五入。
④ 各种比例尺标准分幅图经差、纬差见表1。
⑤ 在用大地坐标生成标准分幅图框时,要求在每条边框线的整秒处插入加密点。
表1 各种比例尺标准分幅图经差、纬差表
比例尺 1:100万 1:50万 1:25万 1:10万 1:5万 1:2.5万 1:1万 1:5千
经差 6º 3º 1º30′ 30′ 15′ 7′30″ 3′45″ 1′52.5″
纬差 4º 2º 1º 20′ 10′ 5′ 2′30″ 1′15″

六、任意图斑椭球面积计算方法
任意封闭图斑椭球面积计算的原理:将任意封闭图斑高斯平面坐标利用高斯投影反解变换模型,将高斯平面坐标换算为相应椭球的大地坐标,再利用椭球面上任意梯形图块面积计算模型计算其椭球面积,从而得到任意封闭图斑的椭球面积。
1、计算方法:
任意封闭区域总是可以分割成有限个任意小的梯形图块,因此,任意封闭区域的面积 ,式中Si为分割的任意小的梯形图块面积(i=1,2,…n)用公式(2)计算。
求封闭区域(多边形如图1)ABCD的面积 ,其具体方法为:
(1)对封闭区域(多边形)的界址点连续编号(顺时针或逆时针)ABCD,提取各界址点的高斯平面坐标A(X1,Y1),B(X2,Y2),C(X3,Y3),D(X4,Y4);
(2)利用高斯投影反解变换模型公式(3),将高斯平面坐标换算为相应椭球的大地坐标A(B1,L1),B(B2,L2),C(B3,L3),D(B4,L4);
(3)任意给定一经线L0(如L0=60°),这样多边形ABCD的各边AB、BC、CD、DA与L0就围成了4个梯形图块(ABB1A1、BCC1B1、CDD1C1、DAA1D1);
(4)由于在椭球面上同一经差随着纬度升高,梯形图块的面积逐渐减小,而同一纬差上经差梯形图块的面积相等,所以,将梯形图块ABB1A1按纬差分割成许多个小梯形图块AEiFiA1,用公式(2)计算出各小梯形图块AEiFiA1的面积Si,然后累加Si就得到梯形图块ABB1A1的面积,同理,依次计算出梯形图块BCC1B1、CDD1C1、DAA1D1的面积(注:用公式(2)计算面积时,B1、B2分别取沿界址点编号方向的前一个、后一个界址点的大地纬度,ΔL为沿界址点编号方向的前一个、后一个界址点的大地经度的平均值与L0的差);
(5)多边形ABCD的面积就等于4个梯形图块(ABB1A1、BCC1B1、CDD1C1、DAA1D1)面积的代数和。

图1 椭球面上任意多边形计算面积
则任意多边形ABCD的面积P为:
P=ABCD= BCC1B1+ CDD1C1+ DAA1D1- ABB1A1
2、计算要求
① 利用图形坐标点将高斯坐标系下的几何图形反算投影到大地坐标系,进行投影变换。
② 任意指定一条经线L0,从选定多边形几何形状的起始点开始,沿顺时针方向依次计算相邻两点构成的线段,以及两点到指定经线的平行线构成的梯形面积。将该梯形沿纬度变化方向(Y轴)进行切割,至少需切割为2个部分。
③ 计算过程中应顺同一方向依坐标点逐个计算相邻两点连线与任意经线构成的梯形面积,坐标点不得有遗漏。若多边形包含内多边形(洞),则该多边形面积为外多边形面积减去所有内多边形面积之和。
④ 计算所有梯形面积的代数和即为该多边形的面积。
七、算法伪代码描述
为了确保编程使用的参数、算法一致,保证不同软件计算的椭球面积一致,我们用算法伪代码描述的方法对编程进行统一,在利用计算机编制椭球面积计算软件时,计算参数与计算顺序应严格按照以下代码执行。
1、参数说明
双精度类型:
圆周率值:PI = 3.14159265358979
中央经线:CenterL
RHO = 206264.8062471

A:ParamA
B:ParamB
C:ParamC
D:ParamD
E:ParamE

Const ZERO As Double = 0.000000000001

80椭球常数

椭球长半轴:aRadius = 6378140
椭球短半轴:bRadius = 6356755.29
椭球扁率:ParaAF = 1/ 298.257
椭球第一偏心率:ParaE1 = 6.69438499958795E-03
椭球第二偏心率:ParaE2 = 6.73950181947292E-03
极点子午圈曲率半径:ParaC = 6399596.65198801

k0:Parak0 = 1.57048687472752E-07
k1:Parak1 = 5.05250559291393E-03
k2:Parak2 = 2.98473350966158E-05
k3:Parak3 = 2.41627215981336E-07
k4:Parak4 = 2.22241909461273E-09

2、算法描述

初始化参数

Double e;
Double a;

e = ParaE2;
ParaC = aRadius / (1 - ParaAF);

ParamA = 1 + (3 / 6) * e + (30 / 80) * Power(e, 2) + (35 / 112) * Power(e, 3) + (630 / 2304) * Power(e, 4);

ParamB = (1 / 6) * e + (15 / 80) * Power(e, 2) + (21 / 112) * Power(e, 3) + (420 / 2304) * Power(e, 4);

ParamC = (3 / 80) * Power(e, 2) + (7 / 112) * Power(e, 3) + (180 / 2304) * Power(e, 4);
ParamD = (1 / 112) * Power(e, 3) + (45 / 2304) * Power(e, 4);

ParamE = (5 / 2304) * Power(e, 4);

参数初始化结束

中央经线转换为弧度
CenterL = TransDegreeToArc(CenterL)

选定本初子午线为参考经线
StandardLat = 0

For 起始点 To 倒数第二点

由高斯坐标反解计算经纬度值
ComputeXYGeo (PntColl.Point(i).y, PntColl.Point(i).x, B, L, CenterL)
ComputeXYGeo (PntColl.Point(i + 1).y, PntColl.Point(i + 1).x, B1, L1, CenterL)
将经纬度转换为弧度值
B = B / RHO
L = L / RHO
B1 = B1 / RHO
L1 = L1 / RHO

计算梯形面积
Double AreaVal;//梯形面积值
Double lDiference ;//经差
Double bDiference; //纬差
Double bSum;//纬度和
Double ItemValue(5);//计算变量

bDiference = (B1 - B0);

bSum = (B1 + B0) / 2;

lDiference = (L1 + L) / 2;

ItemValue(0) = ParamA * Sin(bDiference / 2) * Cos(bSum);
ItemValue(1) = ParamB * Sin(3 * bDiference / 2) * Cos(3 * bSum);
ItemValue(2) = ParamC * Sin(5 * bDiference / 2) * Cos(5 * bSum);
ItemValue(3) = ParamD * Sin(7 * bDiference / 2) * Cos(7 * bSum);
ItemValue(4) = ParamE * Sin(9 * bDiference / 2) * Cos(9 * bSum);
AreaVal = 2 * bRadius * lDiference * bRadius * (ItemValue(0) - ItemValue(1) + ItemValue(2) - ItemValue(3) + ItemValue(4));

areaSum = areaSum + AreaVal;
Next

End Sub

3、高斯坐标反解算法

Public Sub ComputeXYGeo(x As Double, y As Double, B As Double, L As Double, center As Double)

Dim y1 As Double
Dim bf As Double

y1 = y - 500000

Dim e As Double

e = Parak0 * x

Dim se As Double

se = Sin(e)
bf = e + Cos(e) * (Parak1 * se - Parak2 * Power(se, 3) + Parak3 * Power(se, 5) - Parak4 * Power(se, 7))

Dim v As Double
Dim t As Double
Dim N As Double
Dim nl As Double
Dim vt As Double
Dim yn As Double
Dim t2 As Double
Dim g As Double

g = 1

t = Tan(bf)
nl = ParaE1 * Power(Cos(bf), 2)
v = Sqr(1 + nl)
N = ParaC / v
yn = y1 / N
vt = Power(v, 2) * t
t2 = Power(t, 2)
B = bf - vt * Power(yn, 2) / 2 + (5 + 3 * t2 + nl - 9 * nl * t2) * vt * Power(yn, 4) / 24 - (61 + 90 * t2 + 45 * Power(t2, 2)) * vt * Power(yn, 6) / 720

B = TransArcToDegree(B)

Dim cbf As Double

cbf = 1 / Cos(bf)
L = cbf * yn - (1 + 2 * t2 + nl) * cbf * Power(yn, 3) / 6 + (5 + 28 * t2 + 24 * Power(t2, 2) + 6 * nl + 8 * nl * t2) * cbf * Power(yn, 5) / 120 + center
L = TransArcToDegree(L)
End Sub

弧度转换为度
Public Function TransArcToDegree(arc As Double) As Double
Dim degree As Double
Dim min As Double
Dim sec As Double
Dim ret As Double
Dim tmp As Double
ret = arc * 180 / PI
degree = FormatValue(ret, 100, 100)
tmp = (ret - degree) * 60
min = FormatValue(tmp, 100, 100)
sec = (tmp - min) * 60
//秒保留到小数点后6位,四舍五入
sec = Format(sec, "####.000000") 'FormatValue(sec, 10000000, 100)
TransArcToDegree = degree * 3600 + min * 60 + sec
End Function

Private Function FormatValue(inputVal As Double, precsion As Long, scaleNum As Long) As Double
FormatValue = (Int(inputVal * precsion) - Int(inputVal * precsion) Mod scaleNum) / precsion
End Function