Make writing a habit together! This is the third day of my participation in the “Gold Digging Day New Plan · April More text Challenge”. Click here for more details.

Introduction:

With the development of society, all walks of life are taking advantage of the information age. The superiority and popularization of computer make it necessary to develop all kinds of information system. Dental clinic information management platform, the main modules include home page, personal center, doctor management, user management, medical record information management, registration information management, drug information management, device information management, drug list information management, device list information management and other functions. The system administrator is mainly for the safe and effective storage and management of all kinds of information, but also can manage the system and update maintenance operations, and has the corresponding operation rights on the background.

In order to realize the functions of dental clinic information management platform, we need the strong support of background database. The administrator verifies the registration information, collects the information, and thus obtains the association information and so on the large amount of data by the database management. In this paper, the database server uses Mysql as the background database, so that the Web and database are closely linked. In the design process, the system code is fully guaranteed to be readable, practical, easy to expand, universal, easy to maintain, easy to operate and simple page characteristics. The development of this system makes it more convenient to obtain the information of dental clinic information management platform, and also makes the management information of dental clinic information management platform become more systematic and orderly. The system interface is friendly and easy to operate.

System design:

The dental clinic information management platform using Java technology, Mysql database development, fully ensure the system stability, integrity. The design idea of dental clinic information management platform is as follows:

1. Simple and convenient operation, good system interface security: simple and clear page layout, convenient query dental clinic information management platform management information.

2, instant visibility: the information processing of the dental clinic information management platform will be immediately available in the corresponding location, so as to achieve the system function of “instant release, instant effect”.

3, functional perfection: can manage the home page, personal center, doctor management, user management, medical record information management, registration information management, drug information management, device information management, drug list information management, device list information management module modification and maintenance operation.

System architecture diagram belongs to the system design stage, system architecture diagram is only a product of this stage, the overall architecture of the system determines the mode of the whole system, is the foundation of the system. The overall structure design of dental clinic information management platform is shown in the figure.

Function screenshots:

Login and registration: Administrator login into the dental clinic information management platform, can to see all of the information, you can view the home page, personal center, doctors register management, user management, medical record information management, information management, drug information management, equipment information management, medicine single information management, equipment information management, etc., and can also carry on the corresponding operation management

User registration: On the registration page, fill in the user account, user name, password, age, contact number, ID card and other information to complete the user registration. Users can log in to the dental clinic information management platform to view the home page, personal center, doctor management, medical record information management, registration information management, medicine list information management, equipment list information management and other information for detailed operations

Dentist management: administrators can view and modify the deletion of dental information, dentists can modify their own personal information, common users can view and register.

In the doctor management page, you can modify or delete the index, doctor id, doctor name, professional title, gender, contact number, profile picture, graduate school, registration fee, medical service time and other information

User management:

Case management: Doctors can add and view case information after users register

Registration management: ordinary users can register dentists after logging in

In the registration information management page, you can operate the index, registration serial number, user account number, user name, gender, age, ID card, contact number, doctor’s number, doctor’s name, registration fee, registration time, whether to pay and other information.

After the user registered to support the registration fee, the doctor can check the case of the user registered

Procedures such as prescription and doctor’s orders

The administrator views data such as registration details

Drug management: You can modify or delete the index, drug number, drug name, quantity, price and other information in the drug information management page

Device management: On the device information management page, you can modify or delete the index, device number, device name, quantity, and price

Drug order management: In the drug order information management page, you can operate the index, drug order serial number, user account, user name, drug number, drug name, quantity, price, total amount, doctor’s number, registration time, whether to pay and other information in detail

Equipment list management:

Data design:

The administrator information structure diagram is shown in the figure

Registration information management entity attribute diagram, as shown in the figure

Entity attribute diagram of drug order information management is shown in the figure

Part of table design:

Transform the e-R diagram of database conceptual design into a relational database. In a relational database, data relationships consist of data tables, but the structure of the table is expressed in the fields of the table.

Table 4-1: Drug information

The field names type The length of the Fields that
id bigint A primary key
addtime timestamp Creation time
yaopinhao varchar 200 The drug,
yaopinmingcheng varchar 200 Drug name
shuliang int The number of
jiage float The price

Table 4-2: Drug list information

The field names type The length of the Fields that
id bigint A primary key
addtime timestamp Creation time
yaodanliushuihao varchar 200 Drug serial number
yonghuzhanghao varchar 200 The user account
yonghuxingming varchar 200 The user name
huiyuandengji varchar 200 Membership grade
zhekou float discount
yaopinhao varchar 200 The drug,
yaopinmingcheng varchar 200 Drug name
shuliang int The number of
jiage float The price
zongjine varchar 200 The total amount
yishenggonghao varchar 200 Doctors work number
dengjishijian date Registration time
ispay varchar 200 Whether or not to pay

Table 4-3: User table

The field names type The length of the Fields that
id bigint A primary key
username varchar 100 The user name
password varchar 100 password
role varchar 100 role
addtime timestamp The new time

Table 4-4: Token table

The field names type The length of the Fields that
id bigint A primary key
userid bigint The user id
username varchar 100 The user name
tablename varchar 100 The name of the table
role varchar 100 role
token varchar 200 password
addtime timestamp The new time
expiratedtime timestamp Expiration time

Code implementation:


/** * Registration information * back-end interface *@author 
 * @email 
 * @dateThe 2022-03-18 15:32:30 * /
@RestController
@RequestMapping("/guahaoxinxi")
public class GuahaoxinxiController {
    @Autowired
    private GuahaoxinxiService guahaoxinxiService;
    


    /** * Back-end list */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,GuahaoxinxiEntity guahaoxinxi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			guahaoxinxi.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("yisheng")) {
			guahaoxinxi.setYishenggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<GuahaoxinxiEntity> ew = new EntityWrapper<GuahaoxinxiEntity>();
		PageUtils page = guahaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, guahaoxinxi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,GuahaoxinxiEntity guahaoxinxi, HttpServletRequest request){
        EntityWrapper<GuahaoxinxiEntity> ew = new EntityWrapper<GuahaoxinxiEntity>();
		PageUtils page = guahaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, guahaoxinxi), params), params));
        return R.ok().put("data", page);
    }

	/** * list */
    @RequestMapping("/lists")
    public R list( GuahaoxinxiEntity guahaoxinxi){
       	EntityWrapper<GuahaoxinxiEntity> ew = new EntityWrapper<GuahaoxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( guahaoxinxi, "guahaoxinxi")); 
        return R.ok().put("data", guahaoxinxiService.selectListView(ew));
    }

	 /** * query */
    @RequestMapping("/query")
    public R query(GuahaoxinxiEntity guahaoxinxi){
        EntityWrapper< GuahaoxinxiEntity> ew = new EntityWrapper< GuahaoxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( guahaoxinxi, "guahaoxinxi")); 
		GuahaoxinxiView guahaoxinxiView =  guahaoxinxiService.selectView(ew);
		return R.ok("Search for registration information succeeded").put("data", guahaoxinxiView);
    }
	
    /** ** */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        GuahaoxinxiEntity guahaoxinxi = guahaoxinxiService.selectById(id);
        return R.ok().put("data", guahaoxinxi);
    }

    /** * Front-end details */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        GuahaoxinxiEntity guahaoxinxi = guahaoxinxiService.selectById(id);
        return R.ok().put("data", guahaoxinxi);
    }
    



    /** * The backend saves */
    @RequestMapping("/save")
    public R save(@RequestBody GuahaoxinxiEntity guahaoxinxi, HttpServletRequest request){
    	guahaoxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(guahaoxinxi);
        guahaoxinxiService.insert(guahaoxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody GuahaoxinxiEntity guahaoxinxi, HttpServletRequest request){
    	guahaoxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(guahaoxinxi);
        guahaoxinxiService.insert(guahaoxinxi);
        return R.ok();
    }

    /** * modify */
    @RequestMapping("/update")
    public R update(@RequestBody GuahaoxinxiEntity guahaoxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(guahaoxinxi);
        guahaoxinxiService.updateById(guahaoxinxi);// All updates
        return R.ok();
    }
    

    /** * delete */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        guahaoxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /** * remind interface */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")! =null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")! =null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<GuahaoxinxiEntity> wrapper = new EntityWrapper<GuahaoxinxiEntity>();
		if(map.get("remindstart")! =null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")! =null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			wrapper.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("yisheng")) {
			wrapper.eq("yishenggonghao", (String)request.getSession().getAttribute("username"));
		}

		int count = guahaoxinxiService.selectCount(wrapper);
		return R.ok().put("count", count); }}Copy the code
/** * Upload the file mapping table */
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
	@Autowired
    private ConfigService configService;
	/** * Upload file */
	@Async
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("Upload file cannot be empty");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") +1);
		File upload = new File("D:/work/");
		if(! upload.exists()) { upload.mkdirs(); } String fileName =new Date().getTime()+"."+fileExt;
		File dest = new File(upload+"/"+fileName);

		file.transferTo(dest);
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name"."faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/** * Download file */
	@IgnoreAuth
	@RequestMapping("/download")
	public ResponseEntity<byte[]> download(@RequestParam String fileName) {
		try {
			File path = new File(ResourceUtils.getURL("classpath:static").getPath());
			if(! path.exists()) { path =new File("");
			}
			File upload = new File(path.getAbsolutePath(),"/upload/");
			if(! upload.exists()) { upload.mkdirs(); } File file =new File(upload.getAbsolutePath()+"/"+fileName);
			if(file.exists()){
				/*if(! fileService.canRead(file, SessionManager.getSessionUser())){ getResponse().sendError(403); } * /
				HttpHeaders headers = new HttpHeaders();
			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
			    headers.setContentDispositionFormData("attachment", fileName);    
			    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); }}catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR); }}Copy the code

Thesis Reference:

Source code:

Everyone likes, likes, follows, comments, visit 👇🏻👇🏻👇🏻 home page contact 👇🏻👇🏻👇🏻

Clocked articles updated **** 253/365 days