chatGPT助力医保接口开发

news/2025/2/24 1:01:03/文章来源:https://www.cnblogs.com/ljknlb/p/18718005

  在下面的文章中,用到反射来设计医保接口,因为国内的医保接口有一个特点,就是接口基本是统一的,接中传的数据是有一定规律的,这样方便对接后业务级的升级扩展,所以在对接医保接口时,就很容易用OOP来设计一个微框架来对应。

用反射开发医保接口桂素伟,公众号:桂迹
.NET架构小技巧(3)——反射,架构人员法宝I

  当设计完微框架后,剩下的就是累活儿了,就是把几十个接口的输入和输出实体类,把微框架的要求定义出来,这种工作费时费力,还容易眼花。

  chatGPT登场了,这也是chatGPT最擅长的领域了,做一些基本的,重复的工作。

  还是用例子说明吧,下面是一个读卡接口的一部分,我们看看用chatGPT怎么实现。本例chatGPT生成是用visual chatGPT studio在visual studio 2022中生成的。

  首先从医保接口文档中,把实体类复制出来,然后给出提示:
把上面数据生成C#实体类,名称是BaseInfo,并保留原来的名称,加上注释

   //1 psn_no 人员编号 字符型 30 Y//2 psn_cert_type 人员证件类型 字符型 6 Y Y//3 certno 证件号码 字符型 50 Y//4 psn_name 人员姓名 字符型 50 Y//5 gend 性别 字符型 6 Y Y//6 naty 民族 字符型 3 Y//7 brdy 出生日期 日期型yyyy-MM-dd//8 age 年龄 数值型 4,1 Y//9 expContent 字段扩展 字符型 4000//把上面数据生成C#实体类,名称是BaseInfo,并保留原来的名称,加上注释

  下面是就生成的代码:

   /// <summary>/// BaseInfo/// </summary>public class BaseInfo{/// <summary>/// 人员编号/// </summary>public string psn_no { get; set; }/// <summary>/// 人员证件类型/// </summary>public string psn_cert_type { get; set; }/// <summary>/// 证件号码/// </summary>public string certno { get; set; }/// <summary>/// 人员姓名/// </summary>public string psn_name { get; set; }/// <summary>/// 性别/// </summary>public string gend { get; set; }/// <summary>/// 民族/// </summary>public string naty { get; set; }/// <summary>/// 出生日期/// </summary>public DateTime brdy { get; set; }/// <summary>/// 年龄/// </summary>public decimal age { get; set; }/// <summary>/// 字段扩展/// </summary>public string expContent { get; set; }}

  下一步如果chatGPT的收费便宜了,可以把一个文档扔进去,让它自动生成全部实体类。不过现在还是需要把文档中的输入输出数据复制进来,生成对应的实体类。

  还有一类工作比较繁琐,显示医保返回的数据到窗体上,表格相对好处理,单项数据就得定义控件一个一个处理了,这个工作也可以让chatGPT帮我个实现。

  还是用人员接口为例,上面的BaseInfo就是读卡后返回的其中一项人员基本信息,我们可以先给chatGPT做个事例,在窗体上定义一个属性的显示样例:人员编号。

   因为窗体的可视化操作,都会在自动生成对应的代码,我们只需要告诉chatGPT,按照人员编号属性的样子生成其他属性就行了。

  首先要生成定义所有属性的Lable,提示如下:

参照psn_no_display_Lab和psn_no_Lab两个Labe,生成上面数据的Label定义

private Label psn_no_display_Lab;private Label psn_no_Lab;//1 psn_no 人员编号 字符型 30 Y//2 psn_cert_type 人员证件类型 字符型 6 Y Y//3 certno 证件号码 字符型 50 Y//4 psn_name 人员姓名 字符型 50 Y//5 gend 性别 字符型 6 Y Y//6 naty 民族 字符型 3 Y//7 brdy 出生日期 日期型yyyy-MM-dd//8 age 年龄 数值型 4,1 Y//9 expContent 字段扩展 字符型 4000//参照psn_no_display_Lab和psn_no_Lab两个Labe,生成上面数据的Label定义

  篇幅所限,没有粘贴生成的代码,这里每个属性会生成两个Lable的定义。

  接下来,把BaseInfo属性生成对应的Lable给实现了,然后提示:

参照psn_no_display_Lab和psn_no_Lab两个Label,生成BaseInfo实体类中各属性对应的Label,其中注释作为每个**_display_Lab的Text值,生成硬编码,不要使用反射

psn_no_display_Lab = new Label();
psn_no_Lab = new Label();
SuspendLayout();
// 
// psn_no_display_Lab
// 
psn_no_display_Lab.AutoSize = true;
psn_no_display_Lab.Location = new Point(39, 48);
psn_no_display_Lab.Name = "psn_no_display_Lab";
psn_no_display_Lab.Size = new Size(68, 17);
psn_no_display_Lab.TabIndex = 0;
psn_no_display_Lab.Text = "人员编号:";
// 
// psn_no_Lab
// 
psn_no_Lab.AutoSize = true;
psn_no_Lab.Location = new Point(114, 47);
psn_no_Lab.Name = "psn_no_Lab";
psn_no_Lab.Size = new Size(49, 17);
psn_no_Lab.TabIndex = 1;
psn_no_Lab.Text = "psn_no";
// 
// Form1
// 
AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(800, 450);
Controls.Add(psn_no_Lab);
Controls.Add(psn_no_display_Lab);
Name = "Form1";
Text = "Form1";
Load += Form1_Load;
ResumeLayout(false);
PerformLayout();//1 psn_no 人员编号 字符型 30 Y
//2 psn_cert_type 人员证件类型 字符型 6 Y Y
//3 certno 证件号码 字符型 50 Y
//4 psn_name 人员姓名 字符型 50 Y
//5 gend 性别 字符型 6 Y Y
//6 naty 民族 字符型 3 Y
//7 brdy 出生日期 日期型yyyy-MM-dd
//8 age 年龄 数值型 4,1 Y
//9 expContent 字段扩展 字符型 4000
//参照psn_no_display_Lab和psn_no_Lab两个Label,生成BaseInfo实体类中各属性对应的Label,其中注释作为每个**_display_Lab的Text值,生成硬编码,不要使用反射

  篇幅有限,没有把生成的代码粘上来,当然结果要与人中编号的两个lable相同,这里可能不同时刻生成的代码会有偏差,这时就要调整提示语句,反复尝试,以达到自己想要的结果。这时,回到设计界面,就会看到各个属性的对应Lable已经存在,这时,只需要按自己的顺序和设计排版就可以了。

   再有就是当读卡后,要把返回的数据反写到上面定义的控件中,这里,我是用GithubCopilot实现的,当把人员编号赋值后,其他属性就Tab,Enter就可以了,当然,也可以让visual chatGPT studio来生成,你可以试试哦!

var person = new BaseInfo(){psn_no = "psn_no",psn_cert_type = "psn_cert_type",certno = "certno",psn_name = "psn_name",gend = "gend",naty = "naty",brdy = DateTime.Now,age = 1,expContent = "expContent"};psn_no_Lab.Text = person.psn_no;//借助Github Copilot,实现赋值psn_cert_type_Lab.Text = person.psn_cert_type;certno_Lab.Text = person.certno;psn_name_Lab.Text = person.psn_name;gend_Lab.Text = person.gend;naty_Lab.Text = person.naty;brdy_Lab.Text = person.brdy.ToString();age_Lab.Text = person.age.ToString();expContent_Lab.Text = person.expContent;

  其实使用chatGPT最费时间的是,它生成的代码功能问题不大,可能规范与你期望的不一样,这时就可给样例,完善提示,增加引导,来达到自己想要的了。

  文章来源微信公众号

  想要更快更方便的了解相关知识,可以关注微信公众号 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884687.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BUUCTF-PWN-[第五空间2019 决赛]PWN5

学到一个新的做法,在每次分析前,先使用checksec来检查程序是否有特定的保护这里我们可以看到程序开启了NX和Canary保护:NX保护,实际上就是将数据段,设为仅对代码段可见,操作者无法对数据段中的内容进行修改,也不能被执行 Canary保护,会在栈帧中(一般是返回地址之前)插…

vxe-table grid 4.11+ 和 3.13+ 使用展开行详解

vxe-table 使用展开行的两种模式详解, vxe-table 4.11+ v3.13+展开内容支持两种方式,固定和内嵌,其中默认的固定模式是全功能的,内嵌模式不支持虚拟滚动。 官网:https://vxetable.cn 固定模式固定模式,渲染性能最好,支持冻结列、虚拟滚动和单元格选择等 <template>…

【后端】简化部署交互设计方案V2

一、部署流程 1.1 按需获取安装包 获取安装包和校验码,并校验安装包的完整性。 1.2 配置安装和升级部署 解压安装包,配置必要的参数(例如IP和主机名等),然后执行安装工具进行安装,如果授权码有误,则会退出安装。安装的时候会根据当前已经安装的版本情况,让用户选择升级…

【后端】简化部署设计方案V2——技术实现方案

一、安装部署核心内容包的结构 部署核心内容包包含了对操作系统的优化、中间件的安装配置和子平台的安装配置等类型。 1.1 现有交互式部署工具V1的小组件部署结构 目前的交互式部署工具V1进行细化的部署工作,V1工具为每个组件定义了完整的部署逻辑,同时V1工具也为每一个可变参…

最大连续和(单调队列dp)

这道题对取最大值的地方有要求,要先取最大值再入队

Mysql之B树

B-树 B-树(B树或B_树),这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树(B树是一颗多路平衡查找树) 它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图。B-树有如下特点所有键值分布在整颗树中(索引值和具体dat…

Svelte 最新中文文档翻译(10)—— use: 与 Actions

前言 Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…

如何在啥也不懂的情况下将你的公众号接入DeepSeek或其它大模型

本文详细介绍了零基础用户如何借助AI工具将微信公众号接入DeepSeek等大模型实现智能回复的全流程。首先通过AI问答确定开源项目chatgpt-on-wechat,利用豆包AI分析项目结构后选择Docker部署方案。重点讲解了在Ubuntu系统配置国内镜像安装Docker、编写含中文注释的docker-compos…

rust学习十八.1、RUST的OOP和简单示例

很可惜,出于一些理由,rust抛弃了OOP的核心特性之一:继承 其中一个理由应该是至关重要的,但是解释的比较模糊:继承增加了复杂性的确,继承会让rust编译器变得更加复杂。rust编译器虽然足够体贴,但是它偏慢的编译速度也是很多人所吐槽的。 在我对rust编译了解更多之前,我对…

【后端】简化部署设计方案——内层设计方案

根据《简化部署设计方案V2》的内容,内层部署需要提供的 .sh 脚本应覆盖部署流程的各个阶段,确保组件能够顺利安装、配置、启动、检查状态,并支持升级和卸载。 一、 部署某组件所需的内层结构 左侧是约定的内层结构,右侧的其他部署的内容物,按需存放即可。1.1 scripts目录:…

H3C CX8028 GPFS并行文件系统全闪存储配置案例

H3C华三CX8028使用IBM的GPFS商业授权的一款全闪存储设备。本案中,客户机服务器与存储服务器均搭配双口200G网卡 ,配合200G的ROCE网络搭建集群。 GPRS文件系统中,存储集群不光需要把存储服务器组织在一起,客户机也需要在集群中声明身份,参与到集群之中,这并不像传统的集中…

【kali】在Kali Linux中安装Navicat17

Navicat 是笔者最喜欢的一款专业的数据库管理工具,不仅支持多种数据库类型,而且它提供了直观的用户界面和丰富的功能,帮助用户轻松管理和操作数据库,提高工作效率。 通过,Navicat我们是在Windows环境中部署的。本文以KALI为例,讲解如何在Linux环境中部署。 首先,我们从官…