Commit 251dd4c9 by 赵增煜

对接580接口测试

parent ff695bfe
<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\ExternalCmPrescription;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class ExternalCmPrescriptionController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new ExternalCmPrescription(), function (Grid $grid) {
$grid->column('id')->sortable();
$grid->column('idcardTypeCode')->display(function($idcardTypeCode){
if($idcardTypeCode == "01"){
return '身份证';
}else if($idcardTypeCode == "02"){
return '居民户口薄';
}else if($idcardTypeCode == "03"){
return '护照';
}else if($idcardTypeCode == "04"){
return '军官证';
}else if($idcardTypeCode == "05"){
return '驾驶证';
}else if($idcardTypeCode == "06"){
return '港澳居民来往内地通行证';
}else if($idcardTypeCode == "07"){
return '台湾居民来往内地通行证';
}else if($idcardTypeCode == "99"){
return '其他有效证件';
}else{
return '未知';
}
});
$grid->column('idcardNo');
$grid->column('name');
$grid->column('genderCode','性别')->display(function ($genderCode){
if($genderCode == 1){
return '男';
}else if($genderCode == 2){
return '女';
}else{
return '未知';
}
});
$grid->column('birthdate')->display(function($birthdate){
// 检查字符串长度是否为8
if (strlen($birthdate) == 8 && ctype_digit($birthdate)) {
// 提取年、月、日部分
$year = substr($birthdate, 0, 4); // 截取前4位作为年份
$month = substr($birthdate, 4, 2); // 截取中间2位作为月份
$day = substr($birthdate, 6, 2); // 截取最后2位作为日期
// 拼接成目标格式
$formattedDate = $year . "-" . $month . "-" . $day . "-";
// 输出结果
return $formattedDate;
} else {
// 如果长度不符合要求或包含非数字字符
return '';
}
});
// $grid->column('visitNo');
$grid->column('hosRxCode');
$grid->column('rxTypeCode');
$grid->column('tcmPasteCnt');
//$grid->column('tcmUseCode');
$grid->column('tcmUseDes');
// $grid->column('tcmDecoctCode');
$grid->column('tcmDecoctDes');
// $grid->column('tcmFrequencyCode');
$grid->column('tcmFrequencyDes');
$grid->column('tcmOnceDosage');
$grid->column('onceDosageDes');
$grid->column('rxDescription');
$grid->column('rxAmount');
$grid->column('unifiedOrgCode');
$grid->column('orgName');
$grid->column('deptCode');
$grid->column('deptName');
$grid->column('deptClassCode');
$grid->column('deptClassName');
$grid->column('doctIdcardNo');
$grid->column('doctName');
$grid->column('rxDatetime')->display(function ($rxDatetime) {
return self::formatDateTime($rxDatetime);
});
$grid->column('doctCaSign');
$grid->column('originalData');
$grid->column('certificate');
$grid->column('rotateTypeCode');
$grid->column('items');
$grid->column('addAmountItems');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->panel(); // 更改为 panel 布局
$filter->expand(); // 默认展开搜索框
$filter->equal('hosRxCode','处方编号')->width(3);
$filter->equal('idcardNo','患者就诊卡证号码')->width(3);
$filter->equal('name','姓名')->width(3);
$filter->equal('doctName','开处方医师姓名')->width(3);
});
// 禁用详情按钮
$grid->disableViewButton();
// 禁用编辑按钮
$grid->disableEditButton();
// 禁用删除按钮
$grid->disableDeleteButton();
$grid->disableCreateButton(); // 禁用创建按钮
$titles = [
'hosRxCode' => '处方编号',
'idcardNo' => '患者就诊卡证号码',
'name' => '姓名',
'doctName' => '开处方医师姓名',
'rxDatetime' => '开处方日期时间',
'tcmPasteCnt' => '处方帖数',
'tcmOnceDosage' => '一次用量(ml)',
'onceDosageDes' => '一次用量描述',
'originalData' => '数据原文',
'certificate' => '数字证书',
'items' => '处方明细(json字符串)',
];
$grid->export($titles)->filename("处方列表(中药)")->rows(function($rows){
foreach ($rows as $index => &$row) {
$row['rxDatetime'] = self::formatDateTime($row['rxDatetime']);
}
return $rows;
});
});
}
public static function formatDateTime($timeString) {
// 判断字符串是否为空
if (empty($timeString)) {
return "";
}
// 去除可能的多余空格
$timeString = trim($timeString);
// 检查字符串长度是否为15(YYYYMMDD HHMMSS)
if (strlen($timeString) != 15 || !ctype_digit(str_replace(' ', '', $timeString))) {
return "";
}
// 提取日期部分
$datePart = substr($timeString, 0, 8); // 截取前8位作为日期部分
$year = substr($datePart, 0, 4); // 年
$month = substr($datePart, 4, 2); // 月
$day = substr($datePart, 6, 2); // 日
// 提取时间部分
$timePart = substr($timeString, 9, 6); // 截取后6位作为时间部分
$hour = substr($timePart, 0, 2); // 时
$minute = substr($timePart, 2, 2); // 分
$second = substr($timePart, 4, 2); // 秒
// 拼接成目标格式
$formattedDateTime = $year . "-" . $month . "-" . $day . " " . $hour . ":" . $minute . ":" . $second;
// 返回结果
return $formattedDateTime;
}
public static function getPrescriptionName($code) {
$prescriptions = [
'01' => '普通处方',
'02' => '急诊处方',
'03' => '儿科处方',
'04' => '毒性药品',
'05' => '精神 I 类',
'06' => '精神 II 类',
'07' => '精神III类',
'08' => '戒毒药品',
'09' => '麻醉处方',
'99' => '其他处方'
];
return isset($prescriptions[$code]) ? $prescriptions[$code] : '未知处方';
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new ExternalCmPrescription(), function (Show $show) {
$show->field('id');
$show->field('idcardTypeCode');
$show->field('idcardNo');
$show->field('name');
$show->field('genderCode');
$show->field('birthdate');
$show->field('visitNo');
$show->field('hosRxCode');
$show->field('rxTypeCode');
$show->field('tcmPasteCnt');
$show->field('tcmUseCode');
$show->field('tcmUseDes');
$show->field('tcmDecoctCode');
$show->field('tcmDecoctDes');
$show->field('tcmFrequencyCode');
$show->field('tcmFrequencyDes');
$show->field('tcmOnceDosage');
$show->field('onceDosageDes');
$show->field('rxDescription');
$show->field('rxAmount');
$show->field('unifiedOrgCode');
$show->field('orgName');
$show->field('deptCode');
$show->field('deptName');
$show->field('deptClassCode');
$show->field('deptClassName');
$show->field('doctIdcardNo');
$show->field('doctName');
$show->field('rxDatetime');
$show->field('doctCaSign');
$show->field('originalData');
$show->field('certificate');
$show->field('rotateTypeCode');
$show->field('items');
$show->field('addAmountItems');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new ExternalCmPrescription(), function (Form $form) {
$form->display('id');
$form->text('idcardTypeCode');
$form->text('idcardNo');
$form->text('name');
$form->text('genderCode');
$form->text('birthdate');
$form->text('visitNo');
$form->text('hosRxCode');
$form->text('rxTypeCode');
$form->text('tcmPasteCnt');
$form->text('tcmUseCode');
$form->text('tcmUseDes');
$form->text('tcmDecoctCode');
$form->text('tcmDecoctDes');
$form->text('tcmFrequencyCode');
$form->text('tcmFrequencyDes');
$form->text('tcmOnceDosage');
$form->text('onceDosageDes');
$form->text('rxDescription');
$form->text('rxAmount');
$form->text('unifiedOrgCode');
$form->text('orgName');
$form->text('deptCode');
$form->text('deptName');
$form->text('deptClassCode');
$form->text('deptClassName');
$form->text('doctIdcardNo');
$form->text('doctName');
$form->text('rxDatetime');
$form->text('doctCaSign');
$form->text('originalData');
$form->text('certificate');
$form->text('rotateTypeCode');
$form->text('items');
$form->text('addAmountItems');
$form->display('created_at');
$form->display('updated_at');
});
}
}
<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\ExternalWmPrescription;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class ExternalWmPrescriptionController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new ExternalWmPrescription(), function (Grid $grid) {
$grid->column('id')->sortable();
$grid->column('idcardTypeCode')->display(function($idcardTypeCode){
if($idcardTypeCode == "01"){
return '身份证';
}else if($idcardTypeCode == "02"){
return '居民户口薄';
}else if($idcardTypeCode == "03"){
return '护照';
}else if($idcardTypeCode == "04"){
return '军官证';
}else if($idcardTypeCode == "05"){
return '驾驶证';
}else if($idcardTypeCode == "06"){
return '港澳居民来往内地通行证';
}else if($idcardTypeCode == "07"){
return '台湾居民来往内地通行证';
}else if($idcardTypeCode == "99"){
return '其他有效证件';
}else{
return '未知';
}
});
$grid->column('idcardNo');
$grid->column('name');
$grid->column('genderCode','性别')->display(function ($genderCode){
if($genderCode == 1){
return '男';
}else if($genderCode == 2){
return '女';
}else{
return '未知';
}
});
$grid->column('birthdate')->display(function($birthdate){
// 检查字符串长度是否为8
if (strlen($birthdate) == 8 && ctype_digit($birthdate)) {
// 提取年、月、日部分
$year = substr($birthdate, 0, 4); // 截取前4位作为年份
$month = substr($birthdate, 4, 2); // 截取中间2位作为月份
$day = substr($birthdate, 6, 2); // 截取最后2位作为日期
// 拼接成目标格式
$formattedDate = $year . "-" . $month . "-" . $day . "-";
// 输出结果
return $formattedDate;
} else {
// 如果长度不符合要求或包含非数字字符
return '';
}
});
// $grid->column('visitNo','问诊编号');
$grid->column('hosRxCode');
$grid->column('rxTypeCode');
$grid->column('rxAmount');
$grid->column('rxDescription');
$grid->column('unifiedOrgCode');
$grid->column('orgName');
$grid->column('deptCode');
$grid->column('deptName');
$grid->column('deptClassCode');
$grid->column('deptClassName');
$grid->column('doctIdcardNo');
$grid->column('doctName');
$grid->column('rxDatetime')->display(function ($rxDatetime) {
return self::formatDateTime($rxDatetime);
});
$grid->column('doctCaSign');
$grid->column('originalData');
$grid->column('certificate');
$grid->column('rotateTypeCode')->display(function ($rotateTypeCode) {
if($rotateTypeCode == "0"){
return "院内处方";
}else if($rotateTypeCode == "1"){
return "院外处方";
}else{
return "未知";
}
});
$grid->column('items');
$grid->column('addAmountItems');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->panel(); // 更改为 panel 布局
$filter->expand(); // 默认展开搜索框
$filter->equal('hosRxCode','处方编号')->width(3);
$filter->equal('idcardNo','患者就诊卡证号码')->width(3);
$filter->equal('name','姓名')->width(3);
$filter->equal('doctName','开处方医师姓名')->width(3);
});
// 禁用详情按钮
$grid->disableViewButton();
// 禁用编辑按钮
$grid->disableEditButton();
// 禁用删除按钮
$grid->disableDeleteButton();
$grid->disableCreateButton(); // 禁用创建按钮
$titles = [
'hosRxCode' => '处方编号',
'idcardNo' => '患者就诊卡证号码',
'name' => '姓名',
'doctName' => '开处方医师姓名',
'rxDatetime' => '开处方日期时间',
'originalData' => '数据原文',
'certificate' => '数字证书',
'items' => '处方明细(json字符串)',
];
$grid->export($titles)->filename("处方列表(西药)")->rows(function($rows){
foreach ($rows as $index => &$row) {
$row['rxDatetime'] = self::formatDateTime($row['rxDatetime']);
}
return $rows;
});
});
}
public static function formatDateTime($timeString) {
// 判断字符串是否为空
if (empty($timeString)) {
return "";
}
// 去除可能的多余空格
$timeString = trim($timeString);
// 检查字符串长度是否为15(YYYYMMDD HHMMSS)
if (strlen($timeString) != 15 || !ctype_digit(str_replace(' ', '', $timeString))) {
return "";
}
// 提取日期部分
$datePart = substr($timeString, 0, 8); // 截取前8位作为日期部分
$year = substr($datePart, 0, 4); // 年
$month = substr($datePart, 4, 2); // 月
$day = substr($datePart, 6, 2); // 日
// 提取时间部分
$timePart = substr($timeString, 9, 6); // 截取后6位作为时间部分
$hour = substr($timePart, 0, 2); // 时
$minute = substr($timePart, 2, 2); // 分
$second = substr($timePart, 4, 2); // 秒
// 拼接成目标格式
$formattedDateTime = $year . "-" . $month . "-" . $day . " " . $hour . ":" . $minute . ":" . $second;
// 返回结果
return $formattedDateTime;
}
public static function getPrescriptionName($code) {
$prescriptions = [
'01' => '普通处方',
'02' => '急诊处方',
'03' => '儿科处方',
'04' => '毒性药品',
'05' => '精神 I 类',
'06' => '精神 II 类',
'07' => '精神III类',
'08' => '戒毒药品',
'09' => '麻醉处方',
'99' => '其他处方'
];
return isset($prescriptions[$code]) ? $prescriptions[$code] : '未知处方';
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new ExternalWmPrescription(), function (Show $show) {
$show->field('id');
$show->field('idcardTypeCode');
$show->field('idcardNo');
$show->field('name');
$show->field('genderCode');
$show->field('birthdate');
$show->field('hosRxCode');
$show->field('rxTypeCode');
$show->field('rxAmount');
$show->field('rxDescription');
$show->field('unifiedOrgCode');
$show->field('orgName');
$show->field('deptCode');
$show->field('deptName');
$show->field('deptClassCode');
$show->field('deptClassName');
$show->field('doctIdcardNo');
$show->field('doctName');
$show->field('rxDatetime');
$show->field('doctCaSign');
$show->field('originalData');
$show->field('certificate');
$show->field('rotateTypeCode');
$show->field('items');
$show->field('addAmountItems');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new ExternalWmPrescription(), function (Form $form) {
$form->display('id');
$form->text('idcardTypeCode');
$form->text('idcardNo');
$form->text('name');
$form->text('genderCode');
$form->text('birthdate');
$form->text('hosRxCode');
$form->text('rxTypeCode');
$form->text('rxAmount');
$form->text('rxDescription');
$form->text('unifiedOrgCode');
$form->text('orgName');
$form->text('deptCode');
$form->text('deptName');
$form->text('deptClassCode');
$form->text('deptClassName');
$form->text('doctIdcardNo');
$form->text('doctName');
$form->text('rxDatetime');
$form->text('doctCaSign');
$form->text('originalData');
$form->text('certificate');
$form->text('rotateTypeCode');
$form->text('items');
$form->text('addAmountItems');
$form->display('created_at');
$form->display('updated_at');
});
}
}
<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\Medical;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class MedicalController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new Medical(), function (Grid $grid) {
$grid->column('id')->sortable();
$grid->column('visitNo');
$grid->column('idcardTypeCode')->display(function($idcardTypeCode){
if($idcardTypeCode == "01"){
return '身份证';
}else if($idcardTypeCode == "02"){
return '居民户口薄';
}else if($idcardTypeCode == "03"){
return '护照';
}else if($idcardTypeCode == "04"){
return '军官证';
}else if($idcardTypeCode == "05"){
return '驾驶证';
}else if($idcardTypeCode == "06"){
return '港澳居民来往内地通行证';
}else if($idcardTypeCode == "07"){
return '台湾居民来往内地通行证';
}else if($idcardTypeCode == "99"){
return '其他有效证件';
}else{
return '未知';
}
});
$grid->column('idcardNo');
$grid->column('name');
$grid->column('genderCode','性别')->display(function ($genderCode){
if($genderCode == 1){
return '男';
}else if($genderCode == 2){
return '女';
}else{
return '未知';
}
});
$grid->column('birthdate')->display(function($birthdate){
// 检查字符串长度是否为8
if (strlen($birthdate) == 8 && ctype_digit($birthdate)) {
// 提取年、月、日部分
$year = substr($birthdate, 0, 4); // 截取前4位作为年份
$month = substr($birthdate, 4, 2); // 截取中间2位作为月份
$day = substr($birthdate, 6, 2); // 截取最后2位作为日期
// 拼接成目标格式
$formattedDate = $year . "-" . $month . "-" . $day . "-";
// 输出结果
return $formattedDate;
} else {
// 如果长度不符合要求或包含非数字字符
return '';
}
});
$grid->column('guardName');
$grid->column('guardIdcardNo');
$grid->column('subjComplaint');
$grid->column('mainSymptoms');
$grid->column('prexHx');
$grid->column('prevHist');
$grid->column('pastHist');
$grid->column('alleHist');
$grid->column('tcmDdCode');
$grid->column('tcmDdName');
$grid->column('tcmSdCode');
$grid->column('tcmSdName');
$grid->column('mdDisCode');
$grid->column('mdDisName');
$grid->column('disCode1');
$grid->column('disName1');
$grid->column('disCode2');
$grid->column('disName2');
$grid->column('disDescription');
$grid->column('treatMeas');
$grid->column('unifiedOrgCode');
$grid->column('orgName');
$grid->column('deptCode');
$grid->column('deptName');
$grid->column('deptClassCode');
$grid->column('deptClassName');
$grid->column('doctIdcardNo');
$grid->column('doctName');
$grid->column('visitTimeStart')->display(function ($visitTimeStart) {
return self::formatDateTime($visitTimeStart);
});
$grid->column('visitTimeEnd')->display(function ($visitTimeEnd) {
return self::formatDateTime($visitTimeEnd);
});
$grid->column('doctCaSign');
$grid->column('originalData');
$grid->column('certificate');
$grid->column('reviewUrl')->width(3);
$grid->column('firstVisitRecord')->width(3);
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->panel(); // 更改为 panel 布局
$filter->expand(); // 默认展开搜索框
$filter->equal('visitNo','问诊编号')->width(3);
$filter->equal('idcardNo')->width(3);
$filter->equal('name')->width(3);
$filter->equal('doctName')->width(3);
});
// 禁用详情按钮
$grid->disableViewButton();
// 禁用编辑按钮
$grid->disableEditButton();
// 禁用删除按钮
$grid->disableDeleteButton();
$grid->disableCreateButton(); // 禁用创建按钮
$titles = [
// 'id' => 'ID',
'visitNo' => '问诊编号',
'idcardNo' => '患者就诊卡证号码',
'name' => '患者姓名',
'subjComplaint' => '主诉记录',
'prevHist' => '现病史',
'pastHist' => '既往史',
'alleHist' => '过敏史',
'orgName' => '就诊医疗机构名称',
'deptName' => '就诊科室名称',
'deptClassName' => '就诊科室对应诊疗科目名称',
'doctName' => '就诊医师姓名',
'visitTimeStart' => '就诊开始时间',
'visitTimeEnd' => '诊断结束时间',
'reviewUrl' => '诊疗过程调阅地址',
'firstVisitRecord' => '线下初诊记录',
];
$grid->export($titles)->filename("问诊信息")->rows(function($rows){
foreach ($rows as $index => &$row) {
$row['visitTimeStart'] = self::formatDateTime($row['visitTimeStart']);
$row['visitTimeEnd'] = self::formatDateTime($row['visitTimeEnd']);
}
return $rows;
});
});
}
public static function formatDateTime($timeString) {
// 判断字符串是否为空
if (empty($timeString)) {
return "";
}
// 去除可能的多余空格
$timeString = trim($timeString);
// 检查字符串长度是否为15(YYYYMMDD HHMMSS)
if (strlen($timeString) != 15 || !ctype_digit(str_replace(' ', '', $timeString))) {
return "";
}
// 提取日期部分
$datePart = substr($timeString, 0, 8); // 截取前8位作为日期部分
$year = substr($datePart, 0, 4); // 年
$month = substr($datePart, 4, 2); // 月
$day = substr($datePart, 6, 2); // 日
// 提取时间部分
$timePart = substr($timeString, 9, 6); // 截取后6位作为时间部分
$hour = substr($timePart, 0, 2); // 时
$minute = substr($timePart, 2, 2); // 分
$second = substr($timePart, 4, 2); // 秒
// 拼接成目标格式
$formattedDateTime = $year . "-" . $month . "-" . $day . " " . $hour . ":" . $minute . ":" . $second;
// 返回结果
return $formattedDateTime;
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new Medical(), function (Show $show) {
$show->field('id');
$show->field('visitNo');
$show->field('idcardTypeCode');
$show->field('idcardNo');
$show->field('name');
$show->field('genderCode');
$show->field('birthdate');
$show->field('guardName');
$show->field('guardIdcardNo');
$show->field('subjComplaint');
$show->field('mainSymptoms');
$show->field('prexHx');
$show->field('prevHist');
$show->field('pastHist');
$show->field('alleHist');
$show->field('tcmDdCode');
$show->field('tcmDdName');
$show->field('tcmSdCode');
$show->field('tcmSdName');
$show->field('mdDisCode');
$show->field('mdDisName');
$show->field('disCode1');
$show->field('disName1');
$show->field('disCode2');
$show->field('disName2');
$show->field('disDescription');
$show->field('treatMeas');
$show->field('unifiedOrgCode');
$show->field('orgName');
$show->field('deptCode');
$show->field('deptName');
$show->field('deptClassCode');
$show->field('deptClassName');
$show->field('doctIdcardNo');
$show->field('doctName');
$show->field('visitTimeStart');
$show->field('visitTimeEnd');
$show->field('doctCaSign');
$show->field('originalData');
$show->field('certificate');
$show->field('reviewUrl');
$show->field('firstVisitRecord');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new Medical(), function (Form $form) {
$form->display('id');
$form->text('visitNo');
$form->text('idcardTypeCode');
$form->text('idcardNo');
$form->text('name');
$form->text('genderCode');
$form->text('birthdate');
$form->text('guardName');
$form->text('guardIdcardNo');
$form->text('subjComplaint');
$form->text('mainSymptoms');
$form->text('prexHx');
$form->text('prevHist');
$form->text('pastHist');
$form->text('alleHist');
$form->text('tcmDdCode');
$form->text('tcmDdName');
$form->text('tcmSdCode');
$form->text('tcmSdName');
$form->text('mdDisCode');
$form->text('mdDisName');
$form->text('disCode1');
$form->text('disName1');
$form->text('disCode2');
$form->text('disName2');
$form->text('disDescription');
$form->text('treatMeas');
$form->text('unifiedOrgCode');
$form->text('orgName');
$form->text('deptCode');
$form->text('deptName');
$form->text('deptClassCode');
$form->text('deptClassName');
$form->text('doctIdcardNo');
$form->text('doctName');
$form->text('visitTimeStart');
$form->text('visitTimeEnd');
$form->text('doctCaSign');
$form->text('originalData');
$form->text('certificate');
$form->text('reviewUrl');
$form->text('firstVisitRecord');
$form->display('created_at');
$form->display('updated_at');
});
}
}
<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\Test;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class TestController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new Test(), function (Grid $grid) {
$grid->column('id')->sortable();
$grid->column('name');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new Test(), function (Show $show) {
$show->field('id');
$show->field('name');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new Test(), function (Form $form) {
$form->display('id');
$form->text('name');
$form->display('created_at');
$form->display('updated_at');
});
}
}
<?php
namespace App\Admin\Repositories;
use App\Models\ExternalCmPrescriptionModel as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class ExternalCmPrescription extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}
<?php
namespace App\Admin\Repositories;
use App\Models\ExternalWmPrescriptionModel as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class ExternalWmPrescription extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}
<?php
namespace App\Admin\Repositories;
use App\Models\MedicalModel as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class Medical extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}
<?php
namespace App\Admin\Repositories;
use App\Models\Test as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class Test extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}
...@@ -59,6 +59,18 @@ ...@@ -59,6 +59,18 @@
// 导入日志 // 导入日志
$router->resource('/import-log', 'Common\ImportLogController')->names('import-log'); $router->resource('/import-log', 'Common\ImportLogController')->names('import-log');
// 快诊管理
// 问诊列表
$router->resource('medical', 'MedicalController');
// 西药处方列表
$router->resource('external-wm-prescription', 'ExternalWmPrescriptionController');
// 中药处方列表
$router->resource('external-cm-prescription', 'ExternalCmPrescriptionController');
/** 平台菜单-end **/ /** 平台菜单-end **/
/** 药店菜单-start **/ /** 药店菜单-start **/
...@@ -84,6 +96,7 @@ ...@@ -84,6 +96,7 @@
$router->resource('pharmacy-external-prescription', 'PharmacyExternalPrescriptionController'); $router->resource('pharmacy-external-prescription', 'PharmacyExternalPrescriptionController');
// 药店-处方单列表 // 药店-处方单列表
$router->resource('pharmacy-prescription', 'PharmacyPrescriptionController'); $router->resource('pharmacy-prescription', 'PharmacyPrescriptionController');
}); });
$router->get('/auth/smscode', 'AuthController@getLoginSmsCode'); $router->get('/auth/smscode', 'AuthController@getLoginSmsCode');
/** 药店菜单-end **/ /** 药店菜单-end **/
......
<?php
namespace App\Console\Commands;
use App\Models\ExternalCmPrescriptionModel;
use App\Services\ExternalService;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
use Carbon\Carbon;
class CmPrescription extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'cm-prescription:init';
/**
* The console command description.
*
* @var string
*/
protected $description = '同步中药处方';
/**
* Execute the console command.
*/
public function handle()
{
$this->info('处方信息(中药)同步开始...');
try {
$pageNum = 1; // 初始页码
$maxPage = 1; // 默认最大页数为 1
$baseParams = [
// 根据文档填写必要的参数
"beginTime"=>"1732982400000",
"endTime"=>"1859212800000",
"pageNum"=>1,
"pageSize"=>20,
];
$eHospitalApi = new ExternalService('jymd_15700159057_test', 'heU0zM9OrLrK0JehxiAXlPd3L48HHmcA', 'https://ehospital-openapi-test.sq580.com');
while ($pageNum <= $maxPage) {
// 设置当前页码参数
$params = array_merge($baseParams, [
"pageNum" => $pageNum,
]);
// 处方信息(中药)
$response = $eHospitalApi->createPrescriptionCm($params);
// 检查接口是否调用成功
if (isset($response['err']) && $response['err'] === 0) {
echo "第 {$pageNum} 页查询成功。\n";
// 当前页数据
$response_data = $response['data']['list'];
Log::info('CmPrescription-处方信息(中药):'.json_encode($response_data));
if( empty($response_data) ){
break;
}
# 处理数据存入到数据库,如果存在就更新否则就新增
foreach ($response_data as $item) {
$prescription = ExternalCmPrescriptionModel::where('hosRxCode', $item['hosRxCode'])->first();
if($prescription){
$this->info('更新处方(中药):'. $item['hosRxCode']);
// 基本信息
$prescription->idcardTypeCode = $item['idcardTypeCode'] ?? null; // 患者就诊卡证类型
$prescription->idcardNo = $item['idcardNo'] ?? null; // 患者就诊卡证号码
$prescription->name = $item['name'] ?? null; // 姓名
$prescription->genderCode = $item['genderCode'] ?? null; // 性别代码
$prescription->birthdate = $item['birthdate'] ?? null; // 出生日期
$prescription->visitNo = $item['visitNo'] ?? null; // 门诊编号
// 处方基本信息
$prescription->hosRxCode = $item['hosRxCode'] ?? null; // 处方编码
$prescription->rxTypeCode = $item['rxTypeCode'] ?? null; // 处方分类
$prescription->tcmPasteCnt = $item['tcmPasteCnt'] ?? null; // 处方帖数
$prescription->tcmUseCode = $item['tcmUseCode'] ?? null; // 用药方法代码
$prescription->tcmUseDes = $item['tcmUseDes'] ?? null; // 用药方法描述
$prescription->tcmDecoctCode = $item['tcmDecoctCode'] ?? null; // 煎药方法代码
$prescription->tcmDecoctDes = $item['tcmDecoctDes'] ?? null; // 煎药方法描述
$prescription->tcmFrequencyCode = $item['tcmFrequencyCode'] ?? null; // 用药频次代码
$prescription->tcmFrequencyDes = $item['tcmFrequencyDes'] ?? null; // 用药频次描述
$prescription->tcmOnceDosage = $item['tcmOnceDosage'] ?? null; // 一次用量(ml)
$prescription->onceDosageDes = $item['onceDosageDes'] ?? null; // 一次用量描述
$prescription->rxDescription = $item['rxDescription'] ?? null; // 处方备注说明
$prescription->rxAmount = $item['rxAmount'] ?? null; // 处方总金额(元)
// 开处方单位信息
$prescription->unifiedOrgCode = $item['unifiedOrgCode'] ?? null; // 开处方单位编码
$prescription->orgName = $item['orgName'] ?? null; // 开处方单位名称
// 开处方科室信息
$prescription->deptCode = $item['deptCode'] ?? null; // 开处方科室编码
$prescription->deptName = $item['deptName'] ?? null; // 开处方科室名称
$prescription->deptClassCode = $item['deptClassCode'] ?? null; // 开处方科室对应诊疗科目编码
$prescription->deptClassName = $item['deptClassName'] ?? null; // 开处方科室对应诊疗科目名称
// 开处方医师信息
$prescription->doctIdcardNo = $item['doctIdcardNo'] ?? null; // 开处方医师身份证号
$prescription->doctName = $item['doctName'] ?? null; // 开处方医师姓名
$prescription->rxDatetime = $item['rxDatetime'] ?? null; // 开处方日期时间
$prescription->doctCaSign = $item['doctCaSign'] ?? null; // 开处方医师电子签名
// 数字签名相关
$prescription->originalData = $item['originalData'] ?? null; // 数据原文
$prescription->certificate = $item['certificate'] ?? null; // 数字证书
// 处方流向类型
$prescription->rotateTypeCode = $item['rotateTypeCode'] ?? null; // 处方流向类型
// 处方明细(对象数组)
if (isset($item['items'])) {
$prescription->items = json_encode($item['items'], JSON_UNESCAPED_UNICODE); // 处方明细数组
}
// 处方附加服务费用明细(对象数组)
if (isset($item['addAmountItems'])) {
$prescription->addAmountItems = json_encode($item['addAmountItems'], JSON_UNESCAPED_UNICODE); // 处方附加服务费用明细
}
$prescription->updated_at = Carbon::now();
// 保存数据
$prescription->save();
}else{
$this->info('更新处方(中药):'. $item['hosRxCode']);
$prescription = new ExternalCmPrescriptionModel();
// 基本信息
$prescription->idcardTypeCode = $item['idcardTypeCode'] ?? null; // 患者就诊卡证类型
$prescription->idcardNo = $item['idcardNo'] ?? null; // 患者就诊卡证号码
$prescription->name = $item['name'] ?? null; // 姓名
$prescription->genderCode = $item['genderCode'] ?? null; // 性别代码
$prescription->birthdate = $item['birthdate'] ?? null; // 出生日期
$prescription->visitNo = $item['visitNo'] ?? null; // 门诊编号
// 处方基本信息
$prescription->hosRxCode = $item['hosRxCode'] ?? null; // 处方编码
$prescription->rxTypeCode = $item['rxTypeCode'] ?? null; // 处方分类
$prescription->tcmPasteCnt = $item['tcmPasteCnt'] ?? null; // 处方帖数
$prescription->tcmUseCode = $item['tcmUseCode'] ?? null; // 用药方法代码
$prescription->tcmUseDes = $item['tcmUseDes'] ?? null; // 用药方法描述
$prescription->tcmDecoctCode = $item['tcmDecoctCode'] ?? null; // 煎药方法代码
$prescription->tcmDecoctDes = $item['tcmDecoctDes'] ?? null; // 煎药方法描述
$prescription->tcmFrequencyCode = $item['tcmFrequencyCode'] ?? null; // 用药频次代码
$prescription->tcmFrequencyDes = $item['tcmFrequencyDes'] ?? null; // 用药频次描述
$prescription->tcmOnceDosage = $item['tcmOnceDosage'] ?? null; // 一次用量(ml)
$prescription->onceDosageDes = $item['onceDosageDes'] ?? null; // 一次用量描述
$prescription->rxDescription = $item['rxDescription'] ?? null; // 处方备注说明
$prescription->rxAmount = $item['rxAmount'] ?? null; // 处方总金额(元)
// 开处方单位信息
$prescription->unifiedOrgCode = $item['unifiedOrgCode'] ?? null; // 开处方单位编码
$prescription->orgName = $item['orgName'] ?? null; // 开处方单位名称
// 开处方科室信息
$prescription->deptCode = $item['deptCode'] ?? null; // 开处方科室编码
$prescription->deptName = $item['deptName'] ?? null; // 开处方科室名称
$prescription->deptClassCode = $item['deptClassCode'] ?? null; // 开处方科室对应诊疗科目编码
$prescription->deptClassName = $item['deptClassName'] ?? null; // 开处方科室对应诊疗科目名称
// 开处方医师信息
$prescription->doctIdcardNo = $item['doctIdcardNo'] ?? null; // 开处方医师身份证号
$prescription->doctName = $item['doctName'] ?? null; // 开处方医师姓名
$prescription->rxDatetime = $item['rxDatetime'] ?? null; // 开处方日期时间
$prescription->doctCaSign = $item['doctCaSign'] ?? null; // 开处方医师电子签名
// 数字签名相关
$prescription->originalData = $item['originalData'] ?? null; // 数据原文
$prescription->certificate = $item['certificate'] ?? null; // 数字证书
// 处方流向类型
$prescription->rotateTypeCode = $item['rotateTypeCode'] ?? null; // 处方流向类型
// 处方明细(对象数组)
if (isset($item['items'])) {
$prescription->items = json_encode($item['items'], JSON_UNESCAPED_UNICODE); // 处方明细数组
}
// 处方附加服务费用明细(对象数组)
if (isset($item['addAmountItems'])) {
$prescription->addAmountItems = json_encode($item['addAmountItems'], JSON_UNESCAPED_UNICODE); // 处方附加服务费用明细
}
// 保存数据
$prescription->save();
}
}
// 更新分页信息
if (isset($response['data']['maxPage'])) {
$maxPage = $response['data']['maxPage'];
}
if (isset($response['data']['pageNum'])) {
$pageNum = $response['data']['pageNum'] + 1; // 下一页
} else {
$pageNum++; // 如果没有明确的 pageNum,手动递增
}
}else{
Log::info('CmPrescription-处方信息(中药)- 接口异常' .json_encode($response));
echo "第 {$pageNum} 页查询失败。\n";
break; // 如果某页失败,停止翻页
}
if( $maxPage == 1 ){
break;
}
}
} catch (\Exception $e) {
Log::info('CmPrescription-处方信息(中药)- 代码异常' .json_encode($e));
$this->error($e->getMessage());
}
$this->info('处方信息(中药)同步结束...');
}
}
<?php
namespace App\Console\Commands;
use App\Models\MedicalModel;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
use App\Services\ExternalService;
use Carbon\Carbon;
class Medical extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'medical:init';
/**
* The console command description.
*
* @var string
*/
protected $description = '同步问诊信息';
/**
* Execute the console command.
*/
public function handle()
{
$this->info('问诊同步开始...');
try {
$pageNum = 1; // 初始页码
$maxPage = 1; // 默认最大页数为 1
$baseParams = [
// 根据文档填写必要的参数
"beginTime"=>"1732982400000",
"endTime"=>"1859212800000",
"pageNum"=>1,
"pageSize"=>20,
];
$eHospitalApi = new ExternalService('jymd_15700159057_test', 'heU0zM9OrLrK0JehxiAXlPd3L48HHmcA', 'https://ehospital-openapi-test.sq580.com');
while ($pageNum <= $maxPage) {
// 设置当前页码参数
$params = array_merge($baseParams, [
"pageNum" => $pageNum,
]);
// 问诊
$response = $eHospitalApi->getMedicalRecord($params);
// 检查接口是否调用成功
if (isset($response['err']) && $response['err'] === 0) {
echo "第 {$pageNum} 页查询成功。\n";
// 当前页数据
$response_data = $response['data']['list'];
Log::info('Medical-问诊信息:'.json_encode($response_data));
if( empty($response_data) ){
break;
}
# 处理数据存入到数据库,如果存在就更新否则就新增
foreach ($response_data as $item) {
$medical = MedicalModel::where('visitNo', $item['visitNo'])->first();
if($medical){
$this->info('更新问诊:'. $item['visitNo']);
// 基本信息
$medical->idcardTypeCode = $item['idcardTypeCode'] ?? null; // 患者就诊卡证类型
$medical->idcardNo = $item['idcardNo'] ?? null; // 患者就诊卡证号码
$medical->name = $item['name'] ?? null; // 姓名
$medical->genderCode = $item['genderCode'] ?? null; // 性别代码
$medical->birthdate = $item['birthdate'] ?? null; // 出生日期
// 监护人信息(互联网患者年龄小于6岁时必填)
$medical->guardName = $item['guardName'] ?? null; // 监护人姓名
$medical->guardIdcardNo = $item['guardIdcardNo'] ?? null; // 监护人身份证号码
// 主诉和症状
$medical->subjComplaint = $item['subjComplaint'] ?? null; // 主诉记录
$medical->mainSymptoms = $item['mainSymptoms'] ?? null; // 主要监测症状代码组合
// 病史描述
$medical->prexHx = $item['prexHx'] ?? null; // 病史描述
$medical->prevHist = $item['prevHist'] ?? null; // 现病史
$medical->pastHist = $item['pastHist'] ?? null; // 既往史
$medical->alleHist = $item['alleHist'] ?? null; // 过敏史
// 中医诊断
$medical->tcmDdCode = $item['tcmDdCode'] ?? null; // 中医疾病诊断代码
$medical->tcmDdName = $item['tcmDdName'] ?? null; // 中医疾病诊断名称
$medical->tcmSdCode = $item['tcmSdCode'] ?? null; // 中医证候诊断代码
$medical->tcmSdName = $item['tcmSdName'] ?? null; // 中医证候诊断名称
// 西医诊断
$medical->mdDisCode = $item['mdDisCode'] ?? null; // 西医诊断疾病代码
$medical->mdDisName = $item['mdDisName'] ?? null; // 西医诊断疾病名称
// 其他诊断
$medical->disCode1 = $item['disCode1'] ?? null; // 其他诊断①疾病代码
$medical->disName1 = $item['disName1'] ?? null; // 其他诊断①疾病名称
$medical->disCode2 = $item['disCode2'] ?? null; // 其他诊断②疾病代码
$medical->disName2 = $item['disName2'] ?? null; // 其他诊断②疾病名称
// 医生描述
$medical->disDescription = $item['disDescription'] ?? null; // 医生对门诊诊断的描述
$medical->treatMeas = $item['treatMeas'] ?? null; // 处理措施
// 就诊医疗机构信息
$medical->unifiedOrgCode = $item['unifiedOrgCode'] ?? null; // 就诊医疗机构编码
$medical->orgName = $item['orgName'] ?? null; // 就诊医疗机构名称
// 就诊科室信息
$medical->deptCode = $item['deptCode'] ?? null; // 就诊科室编码
$medical->deptName = $item['deptName'] ?? null; // 就诊科室名称
$medical->deptClassCode = $item['deptClassCode'] ?? null; // 就诊科室对应诊疗科目编码
$medical->deptClassName = $item['deptClassName'] ?? null; // 就诊科室对应诊疗科目名称
// 就诊医师信息
$medical->doctIdcardNo = $item['doctIdcardNo'] ?? null; // 就诊医师身份证号
$medical->doctName = $item['doctName'] ?? null; // 就诊医师姓名
// 就诊时间
$medical->visitTimeStart = $item['visitTimeStart'] ?? null; // 就诊开始时间
$medical->visitTimeEnd = $item['visitTimeEnd'] ?? null; // 诊断结束时间
// 数字签名相关
$medical->doctCaSign = $item['doctCaSign'] ?? null; // 就诊医师电子签名
$medical->originalData = $item['originalData'] ?? null; // 数据原文
$medical->certificate = $item['certificate'] ?? null; // 数字证书
// 其他信息
$medical->reviewUrl = $item['reviewUrl'] ?? null; // 诊疗过程调阅地址
// 线下初诊记录(对象类型)
if (isset($item['firstVisitRecord'])) {
$medical->firstVisitRecord = json_encode($item['firstVisitRecord'], JSON_UNESCAPED_UNICODE); // 线上复诊的线下初诊记录信息
}
$medical->updated_at = Carbon::now();
// 保存数据
$medical->save();
}else{
$this->info('新建问诊:'. $item['visitNo']);
$medical = new MedicalModel();
$medical->visitNo = $item['visitNo'];
// 基本信息
$medical->idcardTypeCode = $item['idcardTypeCode'] ?? null; // 患者就诊卡证类型
$medical->idcardNo = $item['idcardNo'] ?? null; // 患者就诊卡证号码
$medical->name = $item['name'] ?? null; // 姓名
$medical->genderCode = $item['genderCode'] ?? null; // 性别代码
$medical->birthdate = $item['birthdate'] ?? null; // 出生日期
// 监护人信息(互联网患者年龄小于6岁时必填)
$medical->guardName = $item['guardName'] ?? null; // 监护人姓名
$medical->guardIdcardNo = $item['guardIdcardNo'] ?? null; // 监护人身份证号码
// 主诉和症状
$medical->subjComplaint = $item['subjComplaint'] ?? null; // 主诉记录
$medical->mainSymptoms = $item['mainSymptoms'] ?? null; // 主要监测症状代码组合
// 病史描述
$medical->prexHx = $item['prexHx'] ?? null; // 病史描述
$medical->prevHist = $item['prevHist'] ?? null; // 现病史
$medical->pastHist = $item['pastHist'] ?? null; // 既往史
$medical->alleHist = $item['alleHist'] ?? null; // 过敏史
// 中医诊断
$medical->tcmDdCode = $item['tcmDdCode'] ?? null; // 中医疾病诊断代码
$medical->tcmDdName = $item['tcmDdName'] ?? null; // 中医疾病诊断名称
$medical->tcmSdCode = $item['tcmSdCode'] ?? null; // 中医证候诊断代码
$medical->tcmSdName = $item['tcmSdName'] ?? null; // 中医证候诊断名称
// 西医诊断
$medical->mdDisCode = $item['mdDisCode'] ?? null; // 西医诊断疾病代码
$medical->mdDisName = $item['mdDisName'] ?? null; // 西医诊断疾病名称
// 其他诊断
$medical->disCode1 = $item['disCode1'] ?? null; // 其他诊断①疾病代码
$medical->disName1 = $item['disName1'] ?? null; // 其他诊断①疾病名称
$medical->disCode2 = $item['disCode2'] ?? null; // 其他诊断②疾病代码
$medical->disName2 = $item['disName2'] ?? null; // 其他诊断②疾病名称
// 医生描述
$medical->disDescription = $item['disDescription'] ?? null; // 医生对门诊诊断的描述
$medical->treatMeas = $item['treatMeas'] ?? null; // 处理措施
// 就诊医疗机构信息
$medical->unifiedOrgCode = $item['unifiedOrgCode'] ?? null; // 就诊医疗机构编码
$medical->orgName = $item['orgName'] ?? null; // 就诊医疗机构名称
// 就诊科室信息
$medical->deptCode = $item['deptCode'] ?? null; // 就诊科室编码
$medical->deptName = $item['deptName'] ?? null; // 就诊科室名称
$medical->deptClassCode = $item['deptClassCode'] ?? null; // 就诊科室对应诊疗科目编码
$medical->deptClassName = $item['deptClassName'] ?? null; // 就诊科室对应诊疗科目名称
// 就诊医师信息
$medical->doctIdcardNo = $item['doctIdcardNo'] ?? null; // 就诊医师身份证号
$medical->doctName = $item['doctName'] ?? null; // 就诊医师姓名
// 就诊时间
$medical->visitTimeStart = $item['visitTimeStart'] ?? null; // 就诊开始时间
$medical->visitTimeEnd = $item['visitTimeEnd'] ?? null; // 诊断结束时间
// 数字签名相关
$medical->doctCaSign = $item['doctCaSign'] ?? null; // 就诊医师电子签名
$medical->originalData = $item['originalData'] ?? null; // 数据原文
$medical->certificate = $item['certificate'] ?? null; // 数字证书
// 其他信息
$medical->reviewUrl = $item['reviewUrl'] ?? null; // 诊疗过程调阅地址
// 线下初诊记录(对象类型)
if (isset($item['firstVisitRecord'])) {
$medical->firstVisitRecord = json_encode($item['firstVisitRecord'], JSON_UNESCAPED_UNICODE); // 线上复诊的线下初诊记录信息
}
// 保存数据
$medical->save();
}
}
// 更新分页信息
if (isset($response['data']['maxPage'])) {
$maxPage = $response['data']['maxPage'];
}
if (isset($response['data']['pageNum'])) {
$pageNum = $response['data']['pageNum'] + 1; // 下一页
} else {
$pageNum++; // 如果没有明确的 pageNum,手动递增
}
} else {
Log::info('Medical-问诊信息- 接口异常' .json_encode($response));
echo "第 {$pageNum} 页查询失败。\n";
break; // 如果某页失败,停止翻页
}
if( $maxPage == 1 ){
break;
}
}
}catch (\Exception $e) {
Log::info('Medical-问诊信息- 代码异常' .json_encode($e));
print_r($e->getMessage());
}
$this->info('问诊同步结束...');
}
}
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
use App\Models\InquiryModel; use App\Models\InquiryModel;
use App\Models\PatientModel; use App\Models\PatientModel;
use App\Models\PrescriptionModel; use App\Models\PrescriptionModel;
use App\Services\ExternalService;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class TestCommand extends Command class TestCommand extends Command
{ {
...@@ -28,6 +30,60 @@ class TestCommand extends Command ...@@ -28,6 +30,60 @@ class TestCommand extends Command
*/ */
public function handle() public function handle()
{ {
print_r("执行开始...\n");
// 使用方法
$eHospitalApi = new ExternalService('jymd_15700159057_test', 'heU0zM9OrLrK0JehxiAXlPd3L48HHmcA', 'https://ehospital-openapi-test.sq580.com');
// 问诊
$response = $eHospitalApi->getMedicalRecord([
// 根据文档填写必要的参数
"beginTime"=>"1732982400000",
"endTime"=>"1859212800000",
"pageNum"=>1,
"pageSize"=>20,
]);
print_r($response);
// Log::info('问诊信息:'.json_encode($response));
foreach ($response['data']['list'] as $item) {
print_r($item['visitNo']);
}
// // 西药
// $response = $eHospitalApi->createPrescriptionWm([
// // 根据文档填写必要的参数
// "beginTime"=>"1732982400000",
// "endTime"=>"1859212800000",
// "pageNum"=>1,
// "pageSize"=>20,
// ]);
// print_r($response);
// Log::info('处方信息(西药):'.json_encode($response));
// // 中药
// $response = $eHospitalApi->createPrescriptionCm([
// // 根据文档填写必要的参数
// "beginTime"=>"1732982400000",
// "endTime"=>"1859212800000",
// "pageNum"=>1,
// "pageSize"=>20,
// ]);
// print_r($response);
// Log::info('处方信息(中药):'.json_encode($response));
// 检查接口调用是否成功
// if (isset($response['err']) && $response['err'] == 0) {
// echo "接口调用成功。\n";
// // 如果需要处理数据,则可以在这里进行
// if (isset($response['data'])) {
// print_r("数据: \n");
// print_r($response['data']);
// }
// } else {
// echo "接口调用失败。\n";
// if (isset($response['errmsg'])) {
// echo "错误信息: " . $response['errmsg'] . "\n";
// } else {
// echo "未能获取详细的错误信息。\n";
// }
// }
print_r("执行结束...\n");
// 刷新问诊问题 // 刷新问诊问题
// $prescriptions = PrescriptionModel::orderBy('id', 'desc')->get(); // $prescriptions = PrescriptionModel::orderBy('id', 'desc')->get();
// foreach ($prescriptions as $prescription) { // foreach ($prescriptions as $prescription) {
...@@ -41,17 +97,17 @@ public function handle() ...@@ -41,17 +97,17 @@ public function handle()
// 刷新存量问诊人年龄 // 刷新存量问诊人年龄
$query = PatientModel::query()->whereNotNull('id_card')->where('age', '<=', 0)->withTrashed(); // $query = PatientModel::query()->whereNotNull('id_card')->where('age', '<=', 0)->withTrashed();
$sql = $query->toSql(); // $sql = $query->toSql();
var_dump($sql); // var_dump($sql);
$patients = $query->get(); // $patients = $query->get();
if ($patients->count() > 0) { // if ($patients->count() > 0) {
foreach ($patients as $patient) { // foreach ($patients as $patient) {
$patient->age = getAgeByIdCard($patient->id_card); // $patient->age = getAgeByIdCard($patient->id_card);
$patient->save(); // $patient->save();
} // }
} else { // } else {
echo '没有需要更新的数据'; // echo '没有需要更新的数据';
} // }
} }
} }
<?php
namespace App\Console\Commands;
use App\Models\ExternalWmPrescriptionModel;
use App\Services\ExternalService;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
use Carbon\Carbon;
class WmPrescription extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'wm-prescription:init';
/**
* The console command description.
*
* @var string
*/
protected $description = '同步西药处方信息';
/**
* Execute the console command.
*/
public function handle()
{
$this->info('处方信息(西药)同步开始...');
try {
$pageNum = 1; // 初始页码
$maxPage = 1; // 默认最大页数为 1
$baseParams = [
// 根据文档填写必要的参数
"beginTime"=>"1732982400000",
"endTime"=>"1859212800000",
"pageNum"=>1,
"pageSize"=>20,
];
$eHospitalApi = new ExternalService('jymd_15700159057_test', 'heU0zM9OrLrK0JehxiAXlPd3L48HHmcA', 'https://ehospital-openapi-test.sq580.com');
while ($pageNum <= $maxPage) {
// 设置当前页码参数
$params = array_merge($baseParams, [
"pageNum" => $pageNum,
]);
// 处方信息(西药)
$response = $eHospitalApi->createPrescriptionWm($params);
// 检查接口是否调用成功
if (isset($response['err']) && $response['err'] === 0) {
echo "第 {$pageNum} 页查询成功。\n";
// 当前页数据
$response_data = $response['data']['list'];
Log::info('WmPrescription-处方信息(西药):'.json_encode($response_data));
if( empty($response_data) ){
break;
}
# 处理数据存入到数据库,如果存在就更新否则就新增
foreach ($response_data as $item) {
$prescription = ExternalWmPrescriptionModel::where('hosRxCode', $item['hosRxCode'])->first();
if($prescription){
$this->info('更新处方(西药):'. $item['hosRxCode']);
// 基本信息
$prescription->idcardTypeCode = $item['idcardTypeCode'] ?? null; // 患者就诊卡证类型
$prescription->idcardNo = $item['idcardNo'] ?? null; // 患者就诊卡证号码
$prescription->name = $item['name'] ?? null; // 姓名
$prescription->genderCode = $item['genderCode'] ?? null; // 性别代码
$prescription->birthdate = $item['birthdate'] ?? null; // 出生日期
$prescription->visitNo = $item['visitNo'] ?? null; // 门诊编号
// 处方基本信息
$prescription->rxTypeCode = $item['rxTypeCode'] ?? null; // 处方分类代码
$prescription->rxAmount = $item['rxAmount'] ?? null; // 处方药品总金额
$prescription->rxDescription = $item['rxDescription'] ?? null; // 处方备注说明
// 开处方医疗机构信息
$prescription->unifiedOrgCode = $item['unifiedOrgCode'] ?? null; // 开处方医疗机构编码
$prescription->orgName = $item['orgName'] ?? null; // 开处方医疗机构名称
// 开处方科室信息
$prescription->deptCode = $item['deptCode'] ?? null; // 开处方科室编码
$prescription->deptName = $item['deptName'] ?? null; // 开处方科室名称
$prescription->deptClassCode = $item['deptClassCode'] ?? null; // 开处方科室对应诊疗科目编码
$prescription->deptClassName = $item['deptClassName'] ?? null; // 开处方科室对应诊疗科目名称
// 开处方医师信息
$prescription->doctIdcardNo = $item['doctIdcardNo'] ?? null; // 开处方医师身份证号
$prescription->doctName = $item['doctName'] ?? null; // 开处方医师姓名
$prescription->rxDatetime = $item['rxDatetime'] ?? null; // 开处方日期时间
$prescription->doctCaSign = $item['doctCaSign'] ?? null; // 开处方医师电子签名
// 数字签名相关
$prescription->originalData = $item['originalData'] ?? null; // 数据原文
$prescription->certificate = $item['certificate'] ?? null; // 数字证书
// 处方流向类型
$prescription->rotateTypeCode = $item['rotateTypeCode'] ?? null; // 处方流向类型
// 处方明细(对象数组)
if (isset($item['items'])) {
$prescription->items = json_encode($item['items'], JSON_UNESCAPED_UNICODE); // 处方明细数组
}
// 处方附加服务费用明细(对象数组)
if (isset($item['addAmountItems'])) {
$prescription->addAmountItems = json_encode($item['addAmountItems'], JSON_UNESCAPED_UNICODE); // 处方附加服务费用明细
}
$prescription->updated_at = Carbon::now();
// 保存数据
$prescription->save();
}else{
$this->info('新增处方(西药):'. $item['hosRxCode']);
$prescription = new ExternalWmPrescriptionModel();
// 基本信息
$prescription->idcardTypeCode = $item['idcardTypeCode'] ?? null; // 患者就诊卡证类型
$prescription->idcardNo = $item['idcardNo'] ?? null; // 患者就诊卡证号码
$prescription->name = $item['name'] ?? null; // 姓名
$prescription->genderCode = $item['genderCode'] ?? null; // 性别代码
$prescription->birthdate = $item['birthdate'] ?? null; // 出生日期
$prescription->visitNo = $item['visitNo'] ?? null; // 门诊编号
// 处方基本信息
$prescription->hosRxCode = $item['hosRxCode'] ?? null; // 处方编码
$prescription->rxTypeCode = $item['rxTypeCode'] ?? null; // 处方分类代码
$prescription->rxAmount = $item['rxAmount'] ?? null; // 处方药品总金额
$prescription->rxDescription = $item['rxDescription'] ?? null; // 处方备注说明
// 开处方医疗机构信息
$prescription->unifiedOrgCode = $item['unifiedOrgCode'] ?? null; // 开处方医疗机构编码
$prescription->orgName = $item['orgName'] ?? null; // 开处方医疗机构名称
// 开处方科室信息
$prescription->deptCode = $item['deptCode'] ?? null; // 开处方科室编码
$prescription->deptName = $item['deptName'] ?? null; // 开处方科室名称
$prescription->deptClassCode = $item['deptClassCode'] ?? null; // 开处方科室对应诊疗科目编码
$prescription->deptClassName = $item['deptClassName'] ?? null; // 开处方科室对应诊疗科目名称
// 开处方医师信息
$prescription->doctIdcardNo = $item['doctIdcardNo'] ?? null; // 开处方医师身份证号
$prescription->doctName = $item['doctName'] ?? null; // 开处方医师姓名
$prescription->rxDatetime = $item['rxDatetime'] ?? null; // 开处方日期时间
$prescription->doctCaSign = $item['doctCaSign'] ?? null; // 开处方医师电子签名
// 数字签名相关
$prescription->originalData = $item['originalData'] ?? null; // 数据原文
$prescription->certificate = $item['certificate'] ?? null; // 数字证书
// 处方流向类型
$prescription->rotateTypeCode = $item['rotateTypeCode'] ?? null; // 处方流向类型
// 处方明细(对象数组)
if (isset($item['items'])) {
$prescription->items = json_encode($item['items'], JSON_UNESCAPED_UNICODE); // 处方明细数组
}
// 处方附加服务费用明细(对象数组)
if (isset($item['addAmountItems'])) {
$prescription->addAmountItems = json_encode($item['addAmountItems'], JSON_UNESCAPED_UNICODE); // 处方附加服务费用明细
}
// 保存数据
$prescription->save();
}
}
// 更新分页信息
if (isset($response['data']['maxPage'])) {
$maxPage = $response['data']['maxPage'];
}
if (isset($response['data']['pageNum'])) {
$pageNum = $response['data']['pageNum'] + 1; // 下一页
} else {
$pageNum++; // 如果没有明确的 pageNum,手动递增
}
}else{
Log::info('WmPrescription-处方信息(西药)- 接口异常' .json_encode($response));
echo "第 {$pageNum} 页查询失败。\n";
break; // 如果某页失败,停止翻页
}
if( $maxPage == 1 ){
break;
}
}
}catch (\Exception $e) {
Log::info('WmPrescription-处方信息(西药)- 代码异常' .json_encode($e));
$this->error($e->getMessage());
}
$this->info('处方信息(西药)同步结束...');
}
}
...@@ -7,6 +7,13 @@ ...@@ -7,6 +7,13 @@
class Kernel extends ConsoleKernel class Kernel extends ConsoleKernel
{ {
protected $commands = [
\App\Console\Commands\Medical::class,
\App\Console\Commands\TestCommand::class,
\App\Console\Commands\WmPrescription::class,
\App\Console\Commands\CmPrescription::class,
];
/** /**
* Define the application's command schedule. * Define the application's command schedule.
*/ */
...@@ -14,7 +21,12 @@ protected function schedule(Schedule $schedule): void ...@@ -14,7 +21,12 @@ protected function schedule(Schedule $schedule): void
{ {
// $schedule->command('inspire')->hourly(); // $schedule->command('inspire')->hourly();
// $schedule->command('mohe:prescription')->everyMinute(); // $schedule->command('mohe:prescription')->everyMinute();
//$schedule->command('mohe:test')->everyMinute();
$schedule->command('medical:init')->everyMinute();
$schedule->command('cm-prescription:init')->daily();
$schedule->command('wm-prescription:init')->daily();
} }
/** /**
* Register the commands for the application. * Register the commands for the application.
......
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class ExternalCmPrescriptionModel extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'external_cm_prescription';
}
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class ExternalWmPrescriptionModel extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'external_wm_prescription';
}
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class MedicalModel extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'medical';
}
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
class Test extends Model
{
use HasDateTimeFormatter;
protected $table = 'test';
}
<?php
namespace App\Services;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class ExternalService {
private $clientId;
private $clientSecret;
private $baseUrl;
public function __construct($clientId, $clientSecret, $baseUrl) {
$this->clientId = $clientId;
$this->clientSecret = $clientSecret;
$this->baseUrl = $baseUrl;
}
/**
* 生成签名
*/
private function generateSign($timeStamp) {
return strtoupper(md5($this->clientId . $timeStamp . $this->clientSecret));
}
/**
* 发送请求
*/
private function sendRequest($endpoint, $data) {
$url = $this->baseUrl . $endpoint;
print_r($url . "\n");
$data_string = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json;charset=utf-8',
'Accept: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
curl_close($ch);
print_r($data_string . "\n");
// print_r($result . "\n");
return json_decode($result, true);
}
/**
* 挂号接口
*/
public function registerPatient($params) {
$timeStamp = time() * 1000; // 当前时间戳(毫秒)
$sign = $this->generateSign($timeStamp);
$params['clientId'] = $this->clientId;
$params['timeStamp'] = $timeStamp;
$params['sign'] = $sign;
return $this->sendRequest('/v1_0/ehospital/openapi/kz/tzt/registerRecordPage', $params);
}
/**
* 就诊记录接口
*/
public function getMedicalRecord($params) {
$timeStamp = time() * 1000; // 当前时间戳(毫秒)
$sign = $this->generateSign($timeStamp);
$params['clientId'] = $this->clientId;
$params['timeStamp'] = $timeStamp;
$params['sign'] = $sign;
return $this->sendRequest('/v1_0/ehospital/openapi/kz/tzt/medicalRecordPage', $params);
}
/**
* 处方开立(西药)接口
*/
public function createPrescriptionWm($params) {
$timeStamp = time() * 1000; // 当前时间戳(毫秒)
$sign = $this->generateSign($timeStamp);
$params['clientId'] = $this->clientId;
$params['timeStamp'] = $timeStamp;
$params['sign'] = $sign;
return $this->sendRequest('/v1_0/ehospital/openapi/kz/tzt/prescriptionWmPage', $params);
}
/**
* 处方开立(中药)接口
*/
public function createPrescriptionCm($params) {
$timeStamp = time() * 1000; // 当前时间戳(毫秒)
$sign = $this->generateSign($timeStamp);
$params['clientId'] = $this->clientId;
$params['timeStamp'] = $timeStamp;
$params['sign'] = $sign;
return $this->sendRequest('/v1_0/ehospital/openapi/kz/tzt/prescriptionCmPage', $params);
}
}
// print_r("执行开始...\n");
// // 使用方法
// $eHospitalApi = new ExternalService('jymd_15700159057_test', 'heU0zM9OrLrK0JehxiAXlPd3L48HHmcA', 'https://ehospital-openapi-test.sq580.com');
// $response = $eHospitalApi->getMedicalRecord([
// // 根据文档填写必要的参数
// "beginTime"=>"1732982400000",
// "endTime"=>"1859212800000",
// "pageNum"=>1,
// "pageSize"=>20,
// ]);
// print_r($response);
// print_r("执行结束...\n");
\ No newline at end of file
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTestTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('test', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name')->default('')->comment('名称');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('test');
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateMedicalTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('medical', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('visitNo')->default('')->comment('580问诊编号');
$table->string('idcardTypeCode')->default('')->comment('患者就诊卡证类型');
$table->string('idcardNo')->default('')->comment('患者就诊卡证号码');
$table->string('name')->default('')->comment('姓名');
$table->string('genderCode')->default('')->comment('性别代码');
$table->string('birthdate')->default('')->comment('出生日期');
$table->string('guardName')->default('')->comment('监护人姓名');
$table->string('guardIdcardNo')->default('')->comment('监护人身份证号码');
$table->longText('subjComplaint')->comment('主诉记录');
$table->text('mainSymptoms')->comment('主要监测症状代码组合');
$table->longText('prexHx')->comment('病史描述');
$table->string('prevHist')->default('')->comment('现病史');
$table->string('pastHist')->default('')->comment('既往史');
$table->string('alleHist')->default('')->comment('过敏史');
$table->string('tcmDdCode')->default('')->comment('中医疾病诊断代码');
$table->string('tcmDdName')->default('')->comment('中医疾病诊断名称');
$table->string('tcmSdCode')->default('')->comment('中医证候诊断代码');
$table->string('tcmSdName')->default('')->comment('中医证候诊断名称');
$table->string('mdDisCode')->default('')->comment('西医诊断疾病代码');
$table->string('mdDisName')->default('')->comment('西医诊断疾病名称');
$table->string('disCode1')->default('')->comment('其他诊断①疾病代码');
$table->string('disName1')->default('')->comment('其他诊断①疾病名称');
$table->string('disCode2')->default('')->comment('其他诊断②疾病代码');
$table->string('disName2')->default('')->comment('其他诊断②疾病名称');
$table->text('disDescription')->comment('医生对门诊诊断的描述');
$table->longText('treatMeas')->comment('处理措施');
$table->string('unifiedOrgCode')->default('')->comment('就诊医疗机构编码');
$table->string('orgName')->default('')->comment('就诊医疗机构名称');
$table->string('deptCode')->default('')->comment('就诊科室编码');
$table->string('deptName')->default('')->comment('就诊科室名称');
$table->string('deptClassCode')->default('')->comment('就诊科室对应诊疗科目编码');
$table->string('deptClassName')->default('')->comment('就诊科室对应诊疗科目名称');
$table->string('doctIdcardNo')->default('')->comment('就诊医师身份证号');
$table->string('doctName')->default('')->comment('就诊医师姓名');
$table->string('visitTimeStart')->default('')->comment('就诊开始时间');
$table->string('visitTimeEnd')->default('')->comment('诊断结束时间');
$table->longText('doctCaSign')->comment('就诊医师电子签名');
$table->longText('originalData')->comment('数据原文');
$table->longText('certificate')->comment('数字证书');
$table->text('reviewUrl')->comment('诊疗过程调阅地址');
$table->longText('firstVisitRecord')->comment('线下初诊记录');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('medical');
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateExternalWmPrescriptionTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('external_wm_prescription', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('idcardTypeCode')->default('')->comment('患者就诊卡证类型');
$table->string('idcardNo')->default('')->comment('患者就诊卡证号码');
$table->string('name')->default('')->comment('姓名');
$table->string('genderCode')->default('')->comment('性别代码');
$table->string('birthdate')->default('')->comment('出生日期');
$table->string('visitNo')->default('')->comment('问诊编号');
$table->string('hosRxCode')->default('')->comment('处方编码');
$table->string('rxTypeCode')->default('')->comment('处方分类代码');
$table->string('rxAmount')->default('')->comment('处方药品总金额');
$table->text('rxDescription')->comment('处方备注说明');
$table->string('unifiedOrgCode')->default('')->comment('开处方医疗机构编码');
$table->string('orgName')->default('')->comment('开处方医疗机构名称');
$table->string('deptCode')->default('')->comment('开处方科室编码');
$table->string('deptName')->default('')->comment('开处方科室名称');
$table->string('deptClassCode')->default('')->comment('开处方科室对应诊疗科目编码');
$table->string('deptClassName')->default('')->comment('开处方科室对应诊疗科目名称');
$table->string('doctIdcardNo')->default('')->comment('开处方医师身份证号');
$table->string('doctName')->default('')->comment('开处方医师姓名');
$table->string('rxDatetime')->default('')->comment('开处方日期时间');
$table->longText('doctCaSign')->comment('开处方医师电子签名');
$table->longText('originalData')->comment('数据原文');
$table->longText('certificate')->comment('数字证书');
$table->string('rotateTypeCode')->default('')->comment('处方流向类型');
$table->longText('items')->comment('处方明细');
$table->longText('addAmountItems')->comment('处方附加服务费用明细');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('external_wm_prescription');
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateExternalCmPrescriptionTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('external_cm_prescription', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('idcardTypeCode')->default('')->comment('患者就诊卡证类型');
$table->string('idcardNo')->default('')->comment('患者就诊卡证号码');
$table->string('name')->default('')->comment('姓名');
$table->string('genderCode')->default('')->comment('性别代码');
$table->string('birthdate')->default('')->comment('出生日期');
$table->string('visitNo')->default('')->comment('门诊编号');
$table->string('hosRxCode')->default('')->comment('处方编码');
$table->string('rxTypeCode')->default('')->comment('处方分类');
$table->string('tcmPasteCnt')->default('')->comment('处方帖数');
$table->string('tcmUseCode')->default('')->comment('用药方法代码');
$table->string('tcmUseDes')->default('')->comment('用药方法描述');
$table->string('tcmDecoctCode')->default('')->comment('煎药方法代码');
$table->string('tcmDecoctDes')->default('')->comment('煎药方法描述');
$table->string('tcmFrequencyCode')->default('')->comment('用药频次代码');
$table->string('tcmFrequencyDes')->default('')->comment('用药频次描述');
$table->string('tcmOnceDosage')->default('')->comment('一次用量(ml)');
$table->string('onceDosageDes')->default('')->comment('一次用量描述');
$table->text('rxDescription')->comment('处方备注说明');
$table->string('rxAmount')->default('')->comment('处方总金额(元)');
$table->string('unifiedOrgCode')->default('')->comment('开处方单位编码');
$table->string('orgName')->default('')->comment('开处方单位名称');
$table->string('deptCode')->default('')->comment('开处方科室编码');
$table->string('deptName')->default('')->comment('开处方科室名称');
$table->string('deptClassCode')->default('')->comment('开处方科室对应诊疗科目编码');
$table->string('deptClassName')->default('')->comment('开处方科室对应诊疗科目名称');
$table->string('doctIdcardNo')->default('')->comment('开处方医师身份证号');
$table->string('doctName')->default('')->comment('开处方医师姓名');
$table->string('rxDatetime')->default('')->comment('开处方日期时间');
$table->longText('doctCaSign')->comment('开处方医师电子签名');
$table->longText('originalData')->comment('数据原文');
$table->longText('certificate')->comment('数字证书');
$table->string('rotateTypeCode')->default('')->comment('处方流向类型');
$table->longText('items')->comment('处方明细');
$table->longText('addAmountItems')->comment('处方附加服务费用明细');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('external_cm_prescription');
}
}
<?php
return [
'labels' => [
'ExternalCmPrescription' => '快诊处方列表(中药)',
'external-cm-prescription' => '快诊处方列表(中药)',
],
'fields' => [
'idcardTypeCode' => '患者就诊卡证类型',
'idcardNo' => '患者就诊卡证号码',
'name' => '姓名',
'genderCode' => '性别代码',
'birthdate' => '出生日期',
'visitNo' => '门诊编号',
'hosRxCode' => '处方编码',
'rxTypeCode' => '处方分类',
'tcmPasteCnt' => '处方帖数',
'tcmUseCode' => '用药方法代码',
'tcmUseDes' => '用药方法描述',
'tcmDecoctCode' => '煎药方法代码',
'tcmDecoctDes' => '煎药方法描述',
'tcmFrequencyCode' => '用药频次代码',
'tcmFrequencyDes' => '用药频次描述',
'tcmOnceDosage' => '一次用量(ml)',
'onceDosageDes' => '一次用量描述',
'rxDescription' => '处方备注说明',
'rxAmount' => '处方总金额(元)',
'unifiedOrgCode' => '开处方单位编码',
'orgName' => '开处方单位名称',
'deptCode' => '开处方科室编码',
'deptName' => '开处方科室名称',
'deptClassCode' => '开处方科室对应诊疗科目编码',
'deptClassName' => '开处方科室对应诊疗科目名称',
'doctIdcardNo' => '开处方医师身份证号',
'doctName' => '开处方医师姓名',
'rxDatetime' => '开处方日期时间',
'doctCaSign' => '开处方医师电子签名',
'originalData' => '数据原文',
'certificate' => '数字证书',
'rotateTypeCode' => '处方流向类型',
'items' => '处方明细',
'addAmountItems' => '处方附加服务费用明细',
],
'options' => [
],
];
<?php
return [
'labels' => [
'ExternalWmPrescription' => '快诊处方列表(西药)',
'external-wm-prescription' => '快诊处方列表(西药)',
],
'fields' => [
'idcardTypeCode' => '患者就诊卡证类型',
'idcardNo' => '患者就诊卡证号码',
'name' => '姓名',
'genderCode' => '性别代码',
'birthdate' => '出生日期',
'hosRxCode' => '处方编码',
'rxTypeCode' => '处方分类代码',
'rxAmount' => '处方药品总金额',
'rxDescription' => '处方备注说明',
'unifiedOrgCode' => '开处方医疗机构编码',
'orgName' => '开处方医疗机构名称',
'deptCode' => '开处方科室编码',
'deptName' => '开处方科室名称',
'deptClassCode' => '开处方科室对应诊疗科目编码',
'deptClassName' => '开处方科室对应诊疗科目名称',
'doctIdcardNo' => '开处方医师身份证号',
'doctName' => '开处方医师姓名',
'rxDatetime' => '开处方日期时间',
'doctCaSign' => '开处方医师电子签名',
'originalData' => '数据原文',
'certificate' => '数字证书',
'rotateTypeCode' => '处方流向类型',
'items' => '处方明细',
'addAmountItems' => '处方附加服务费用明细',
],
'options' => [
],
];
<?php
return [
'labels' => [
'Medical' => '问诊记录',
'medical' => '问诊记录',
],
'fields' => [
'visitNo' => '快诊问诊编号',
'idcardTypeCode' => '患者就诊卡证类型',
'idcardNo' => '患者就诊卡证号码',
'name' => '姓名',
'genderCode' => '性别代码',
'birthdate' => '出生日期',
'guardName' => '监护人姓名',
'guardIdcardNo' => '监护人身份证号码',
'subjComplaint' => '主诉记录',
'mainSymptoms' => '主要监测症状代码组合',
'prexHx' => '病史描述',
'prevHist' => '现病史',
'pastHist' => '既往史',
'alleHist' => '过敏史',
'tcmDdCode' => '中医疾病诊断代码',
'tcmDdName' => '中医疾病诊断名称',
'tcmSdCode' => '中医证候诊断代码',
'tcmSdName' => '中医证候诊断名称',
'mdDisCode' => '西医诊断疾病代码',
'mdDisName' => '西医诊断疾病名称',
'disCode1' => '其他诊断①疾病代码',
'disName1' => '其他诊断①疾病名称',
'disCode2' => '其他诊断②疾病代码',
'disName2' => '其他诊断②疾病名称',
'disDescription' => '医生对门诊诊断的描述',
'treatMeas' => '处理措施',
'unifiedOrgCode' => '就诊医疗机构编码',
'orgName' => '就诊医疗机构名称',
'deptCode' => '就诊科室编码',
'deptName' => '就诊科室名称',
'deptClassCode' => '就诊科室对应诊疗科目编码',
'deptClassName' => '就诊科室对应诊疗科目名称',
'doctIdcardNo' => '就诊医师身份证号',
'doctName' => '就诊医师姓名',
'visitTimeStart' => '就诊开始时间',
'visitTimeEnd' => '诊断结束时间',
'doctCaSign' => '就诊医师电子签名',
'originalData' => '数据原文',
'certificate' => '数字证书',
'reviewUrl' => '诊疗过程调阅地址',
'firstVisitRecord' => '线下初诊记录',
],
'options' => [
],
];
<?php
return [
'labels' => [
'Test' => 'Test',
'test' => 'Test',
],
'fields' => [
'name' => '名称',
],
'options' => [
],
];
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment