Skin, Bones, Hearts & Private Parts Hosts Destin, Florida CME Conference in Primary and Specialty Care Settings
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants, Registered Nurses & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants, Registered Nurses & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants, Registered Nurses & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants, Registered Nurses & Physicians
Continuing Medical Education for Nurse Practitioners, Physician Assistants, Registered Nurses & Physicians
Voyage Of Life is a magnificent work that explores the full range of human emotion and demonstrates how love can withstand even the most profound events without fading away with time.
Award-winning human capital management (HCM) provider, PNI•HCM, adds the Encompass Group's industry-leading recruiting services to their suite of full-service HR solutions to help clients improve hiring and retention.
Adding a Powerful Learning Management System to Multi-channel Live and OnDemand Video Streaming Service Delivers Corporate University Performance gains.
CMV is known to be present in semen of HIV-infected men, factors leading to shedding of each virus are unknown. Studies determining the efficacy of adding anti-CMV treatment strategies to HAART on lowering the semen burden of CMV are urgently needed
Velma M. McMillan shared her professional achievements and industry expertise in Vogue magazine
Michael de la Guardia will kick off the main conference on Monday, January 22, 2024, with a presentation on the future of the Center for Medicare & Medicaid Service's (CMS) value-based insurance design (VBID) model.
Voyage Of Life is a magnificent work that explores the full range of human emotion and demonstrates how love can withstand even the most profound events without fading away with time.
Janet A. Jackson, IMTA CMT-P, recognized for over two decades as a mindfulness teacher and keynote speaker
Netflix's new documentary series, Mr. McMahon, aims to pull back the curtain on one of the most influential and controversial figures in professional wrestling—Vince McMahon.
Obtaining contextual knowledge about how users create and interact with unstructured data is an essential business practice to plan for data storms effectively. Enterprises need to understand that it's not enough to know these user activities but also must take remediation action when necessary.
TomTom migrated to Storyblok within 3 months and decreased content development costs by 30%, according to the company
Cystic fibrosis patient care has advanced greatly in recent years and the mortality rate has improved.
Mannitol is a commonly used osmotherapy agent in raised intracranial pressure (ICP) but the side effects are significant.
Targets for treatment of raised intracranial pressure or decreased cerebral perfusion pressure in pediatric neurocritical care are not well defined.
As a proof of concept, a recurrent neural network (RNN) model was developed using electronic medical record (EMR) data capable of continuously assessing a child's risk of mortality throughout an ICU stay as a proxy measure of illness severity.
Healthcare workload has emerged as an important metric associated with poor outcomes. To measure workload, studies have used bed occupancy as a surrogate. However, few studies have examined frontline clinician workload and outcomes.
The increasing use of electronic health records (EHRs) has inspired the need for a more dynamic checklist. Geva et al conducted a before-after quality improvement study by replacing a static checklist with an updated dynamic checklist.
(This post is by Charles) Art Owen (Stanford) read our paper on nesting Rhat to assess convergence in the many-short-chains regime of MCMC. He made a lot of great comments and asked some clarification questions. Notably: It wasn’t clear to me … Continue reading
The New York State Workers’ Compensation Board said part of its ongoing modernization initiatives will require health care providers to contract with an electronic submission partner to submit the CMS-1500…
Medical management firm OccMD on Tuesday announced the appointment of Cheryl Killion as the new director of nurse case management effective June 1. Killion has served as a senior nurse case…
The U.S. Centers for Medicare and Medicaid Services updated its work comp set-aside reference guide to add expand a section that addresses coordinating benefit payments with other health insurers. CMS on…
The U.S. Centers for Medicare and Medicaid Services is holding a reporting webinar Sept. 12. The program will cover best practices and reminders for non-group health plans that are required to…
As a national leader on all components of workers compensation education, WorkCompCentral continues to provide exceptional opportunities to learn about all aspects of work comp law, policy, procedures, and practice.
In 2022 we changed our dev tooling for new Craft CMS projects. Goodbye complex esoteric Webpack configuration, hello Vite. Goodbye complex esoteric Docker Compose configuration, hello DDEV. This small change in tooling has completely transformed our development experience. We start work faster and avoid wasting billable time debugging Webpack and Docker.
Webpack has been the defacto way of bundling JavaScript and front end assets. It’s a powerful tool… but with that great power comes great responsibility complexity.
Vite bills itself as the “next generation” of frontend tooling. Vite is much faster at bundling. But more importantly… its default configurations work great for most website projects.
Well over 300 lines of configuration spanning three files. Good luck making changes!
A crisp 30 - 50 lines of code. Want to switch to TypeScript? Need to drop in a popular front-end framework? Easy! All it takes is adding a plugin and 2-3 lines of config.
Deleting old code has never felt this good!
Docker is another development staple. It isolates server infrastructure into virtual “containers.” This helps avoid issues that arise from each developer having a slightly different setup. However, Docker can have a learning curve. Config changes, PHP upgrades and unexpected issues often eat up precious project time.
Enter DDEV! DDEV describes itself as “Container superpowers with zero required Docker skills: environments in minutes, multiple concurrent projects, and less time to deployment.” We’ve found that statement to be 100% true.
Every Craft project has a different Docker config. Bugs and upgrades required deep Docker experience. Last (but not least), it was difficult to run several projects at one time (ports often conflict).
Performance is consistently better than our hand-rolled setup thanks to Mutagen and faster DB import/exports. Simultaneous projects run out of the box. DDEV provides (and maintains) a growing list of helpful shortcuts and DX features.
Ready to make the switch? Here’s how to set up DDEV, Vite and Tailwind on your own Craft project.
If you would rather see full config files instead of following step by step, check out our Craft Site Starter on GitHub.
Let’s set up a fresh DDEV project and start customizing.
Now you have a fresh .ddev/config.yaml
just waiting to be customized.
Open your DDEV config and make sure your Node JS version matches Vite’s recommendations.
nodejs_version: '20' # Vite 5 expects Node 18+
Next, expose ports that Vite’s dev server uses will use to serve assets.
web_extra_exposed_ports:
- name: vite
container_port: 3000
http_port: 3000
https_port: 3001
Routing ports can sometimes be confusing. This diagram might help!
http
traffic and 3001 for https
Usually, you’ll want Vite to watch and build files automatically after you start a DDEV project. Using web_extra_daemons
adds a separate background process (daemon) for Vite.
web_extra_daemons:
# Run Vite in a separate process
- name: 'vite'
command: 'npm install && npm run dev'
directory: /var/www/html
DDEV’s powerful hooks system can run tasks before or after various DDEV commands. These post-start tasks keep dependencies and schemas up to date every time you start DDEV.
hooks:
post-start:
- composer: install # Keeps installed packages up to date
- exec: ./craft up # Apply migrations & project config changes
Vite is a Node app that’s installed with NPM. Your project will need a package.json
. If you don’t have one set up yet, follow NPMs initialization script.
ddev npm init
# Don't forget to ignore node_modules!
echo node_modules >> .gitignore
????Why ddev
at the start of the command? This let’s us run NPM from within DDEV’s Docker containers. This means you’ll always be using the Node version configured for this project. DDEV has a bunch of shortcuts and aliases for running CLI commands (such as npm, yarn, craft and composer).
Our various config files will be using ES Module syntax for imports and exports.
ddev npm pkg set type=module
ddev npm install --save-dev vite
package.json
#"scripts": {
"dev": "vite",
"build": "vite build"
}
npm run dev
runs Vite in dev mode. It watches and builds your files every save. Files are served through Vite’s dev server.
npm run build
bundles your JavaScript, CSS and static images for production. Your deploy process will usually call this script.
vite.config.js
#Running Vite for a server rendered CMS requires some extra configuration. These options put production files in the right spot and keeps Vite’s dev server running on a specific port.
import { defineConfig, loadEnv } from 'vite'
// Match ports in .ddev/config.yaml and config/vite.php
const HTTP_PORT = 3000
const HTTPS_PORT = 3001
export default defineConfig(({ command, mode }) => {
const env = loadEnv(mode, process.cwd(), '')
return {
// In dev mode, we serve assets at the root of https://my.ddev.site:3000
// In production, files live in the /dist directory
base: command === 'serve' ? '' : '/dist/',
build: {
manifest: true,
// Where your production files end up
outDir: './web/dist/',
rollupOptions: {
input: {
// The entry point for Vite, we'll create this file soon
app: 'src/js/app.js',
},
},
},
server: {
// Special address that respond to all network requests
host: '0.0.0.0',
// Use a strict port because we have to hard code this in vite.php
strictPort: true,
// This is the port running "inside" the Web container
// It's the same as continer_port in .ddev/config.yaml
port: HTTP_PORT,
// Setting a specific origin ensures that your fonts & images load
// correctly. Assumes you're accessing the front-end over https
origin: env.PRIMARY_SITE_URL + ':' + HTTPS_PORT,
},
}
})
Vite needs an entry point to determine what JavaScript, CSS and Front End assets it needs to compile. Remember src/js/app.js
that we defined in vite.config.js
? Let's make that file now.
/* Make a file in src/js/app.js */
import '../css/app.css'
console.log('Hello Craft CMS')
We’ll also add our CSS as an import in app.js
. In plain-old-JavaScript you can’t import CSS files. However, Vite uses this to figure out CSS dependencies for the project.
Once Vite builds everything for production, you end up with a separate CSS file. The Craft Vite plugin includes this automatically with along your JavaScript bundle.
/* Make a file in src/css/app.css */
body {
background-color: peachpuff;
}
ddev composer require nystudio107/craft-vite
ddev craft plugin/install vite
Vite assets have different URLs in dev mode vs. production. In dev mode, assets are served from Vite’s dev server. It uses the ports that we defined in our DDEV & Vite configs.
When Vite builds for production, filenames are hashed (app.js
becomes app-BZi_KJSq.js
). These hashes change when the contents of the file changes. Browser can cache these files indefinitely. When an asset changes, a whole new file is served.
To help find these hashed filenames, Vite creates a manifest.json file
. The manifest associates the name of your asset src/js/app.js
to the hashed file that ends up on your server web/dist/assets/app-BZi_KJSq.js
The Craft Vite Plugin by NYStudio107 takes care of all this routing for you.
{
"src/js/app.js": {
"file": "assets/app-BZi_KJSq.js",
"name": "app",
"src": "src/js/app.js",
"isEntry": true,
"css": ["assets/app-BXePGY5I.css"]
}
}
Make a new plugin config file in config/vite.php
<?php
use crafthelpersApp;
// Use the current host for dev server requests. Otherwise fall back to the primary site.
$host = Craft::$app->getRequest()->getIsConsoleRequest()
? App::env('PRIMARY_SITE_URL')
: Craft::$app->getRequest()->getHostInfo();
return [
'devServerPublic' => "$host:3001", // Matches https_port in .ddev/config.yaml
'serverPublic' => '/dist/',
'useDevServer' => App::env('CRAFT_ENVIRONMENT') === 'dev',
'manifestPath' => '@webroot/dist/.vite/manifest.json',
// Optional if using React or Preact
// 'includeReactRefreshShim' => true,
];
The script and asset functions includes the appropriate files depending on in if you’re in dev mode or production. Clear out your templates/index.twig
file and add the following snippet to your <head>
tag.
{# Load our main CSS file in dev mode to avoid FOUC #}
{% if craft.vite.devServerRunning() %}
<link rel="stylesheet" href="{{ craft.vite.asset("src/css/app.css") }}">
{% endif %}
{{ craft.vite.script('src/js/app.js', false) }}
Whew! ???? We’re at a point now where we can test our integration. Run ddev restart
and then ddev launch
. You should see “Hello Craft CMS” in your browser console.
Now that Vite is processing src/css/app.css
, it’s time to install Tailwind and really get cooking.
These steps are based on Tailwind’s official installation guide. But make sure to run all commands from within DDEV.
ddev npm install -D tailwindcss postcss cssnano autoprefixer
# No DDEV shortcut for npx :(
ddev exec npx tailwindcss init -p
tailwind.config.js
#/** @type {import('tailwindcss').Config} */
export default {
// Watch Twig templates and any JS or JSX that might use Tailwind classes.
content: ['./templates/**/*.twig', './src/**/*.{js,jsx,ts,tsx,svg}'],
theme: {
extend: {},
},
plugins: [],
}
postcss.config.js
for production #export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {})
}
}
src/css/app.css
#@tailwind base;
@tailwind components;
@tailwind utilities;
You’ll most likely need to run ddev restart again to get Vite to recognize your new Tailwind config.
❓ Do i need to set up live reload of Twig? Turns out it’s already done for you! Styling a Tailwind project means editing Twig files to change styles. It’s super handy to reload your browser every time you save. Normally you’d reach for vite-plugin-restart to get this functionality. However, Tailwind’s JIT mode automatically notifies Vite when CSS has compiled and the page should reload.
That’s all it takes to configure a minimal DDEV and Vite project! We’ve found that both of these tools are easy to extend as a project get more complo'ex. Adding things like Redis or React are just a plugin install and a few lines of config away.
???? If you'd like to see this setup (and more) in a real-world Craft CMS project, check out our Craft Site Starter on GitHub.
Go forth and Vite + DDEV to your heart’s desire.
When starting a new project, decision makers are faced with the dilemma of choosing a content management system (CMS). Sometimes, it’s not that simple and they must choose whether to go with a traditional CMS or a headless CMS. Both offer unique benefits and cater to different needs, making it crucial to understand when each makes sense for your project. Let’s take a look at some considerations that can help you make the right decision.
Traditional CMS’s – like Craft CMS, WordPress, and Drupal – offer a pre-packaged solution for content creation, management, and delivery. They include powerful interfaces with content editing capabilities and templating out of the box, enabling you to create sites with ease. A traditional CMS can be monolithic because the back-end and front-end are tightly coupled. Using a traditional CMS typically means you are using all of the tools included to achieve your goal.
A Headless CMS is like a Traditional CMS in that it includes content creation and management tools. But it differs in the fact that the back-end content management system is decoupled from the front-end (presentation layer), allowing developers to use any technology stack they prefer for building the front-end of the site. The back-end acts as an API with its only purpose being to serve content from the database. There are CMS options like Contentful, Payload, and Strapi that are built to be headless. Popular traditional CMS’s like Craft CMS and WordPress also offer headless variants.
Let’s simplify things a bit more and look at the decision using an analogy; a restaurant.
Traditional Restaurant (Traditional CMS)
Imagine a restaurant where the kitchen and dining room are connected. The chefs cook the food, and the waitstaff serve it directly to the customers in the same building. This setup means that everything is closely integrated, and the kitchen (back-end) is tightly coupled to the dining experience (front-end). Picture a scenario where the restaurant decides to change from table service to buffet style. The food now needs to be prepared in advance and delivered to the front of house in a different way, potentially even requiring new equipment. The restaurant needs to be reconfigured to not only accommodate the buffet but also to interface with the kitchen differently. Because the restaurant and kitchen are coupled, both sides would require work in order to accommodate a shift in strategy.
Now, think of a ghost (or cloud) kitchen where food is prepared centrally but can be delivered to various locations or dining experiences. The kitchen (back-end) focuses solely on cooking (content creation and management) and doesn't worry about where the food is served. Instead, the meals (content) can be delivered to different endpoints like food trucks, home deliveries, or partner restaurants (or in our case websites, mobile apps, etc.). This separation allows more flexibility in how and where the content is delivered without changing the core cooking process. If a new experience requires new equipment or processes, the kitchen can be expanded without affecting the front-end experience.
If you consistently need to deliver content across multiple platforms (websites, mobile apps, IoT devices), a headless CMS is ideal because it can serve the same content through APIs to any front-end. The front-end can be swapped out without any need for development to the back-end.
If you want the ability to keep your content management system up-to-date independently of the presentation layer, a headless CMS can allow for more agile and scalable development. This could be especially useful if you anticipate needing to redesign or update parts of the front-end frequently without affecting the back-end content.
Maybe your team has developers who are very proficient in a particular JavaScript framework, like Next.js, SvelteKit, or Astro. The time needed to learn a new templating language could push you past your deadline. Maybe you have some cool interactive interface in mind? A headless CMS can provide the raw content for your developers to build highly custom, tailor-made front-ends in whatever language or framework they please.
Going headless can offer security advantages due to its decoupled nature. By communicating via API to the front-end, data access can be controlled more granularly. Because the back-end is only responsible for content management and delivery, fewer plugins are typically used which means a smaller chance of vulnerabilities due to third-party software.
A cloud-based headless CMS offers additional advantages over a self-hosted headless CMS. It can simplify maintenance and operating costs since the cloud provider is responsible for updates and security of the platform. Cloud-based solutions like Strapi Cloud often come with integrated security features, automatic backups, and disaster recovery options.
While the flexibility and security a headless CMS offers may be great benefits, it may not be necessary for every project and could even introduce complexity. It’s important to consider the long-term purpose of the project and who will be responsible for maintaining it as well as authoring content. If your primary focus is on managing and delivering content in a structured manner with rapid development, a traditional CMS can be an excellent choice. But if you feel any of the examples I’ve laid out above align with your project’s requirements then a headless CMS may be right for you!
Whatever route you take, remember that both Craft CMS and WordPress can be used in traditional or headless applications and are a fine choice either way! Now you know the differences between a traditional and headless CMS, and an informed decision can be made. If you have more questions or a project you think could benefit from a traditional or headless CMS, we’d love to help!
A century ago, companies had frustratingly few channels through which they could reach their consumer audience. Thus, business leaders had little use for high-level marketing experts; with merely a creative team, they could effectively advertise their products and build name recognition amongst their target consumers. Today, digital technology has allowed media to diversify to a […]
The post How Digital Technology Brought the Rise of the CMO appeared first on 404 Tech Support.
Tom Franklin will be giving a plenary talk on "There Is No Such Thing As A Silver Bullet: CMS And Portals Will Not Solve Your Problems!". This talk is a replacement for the plenary talk by Mike Taylor which was advertised previously. [2005-05-31]
The University of Bradford Web CMS project began in October 2005 and by the time IWMW 2008 happens we will have purchased our Web CMS and have a new University Web Team in place (just!). "Crumbs - that's taken a long time," you may say! Well, yes - but we know that by the end of the project we will have a Web CMS that suits our organisational needs and is welcomed and accepted by the users, as well as a new resource to assist the University of Bradford in taking its Web presence forward - the University Web Team. So how did we do it? Following on from last year's IWMW 2007 session (People, Processes and Projects - How the Culture of an Organisation can Impact on Technical System Implementation) we will give some insight into why we think our project has continued to be successful - detailing the hurdles we met along the way and how we overcame them - and imparting the knowledge that we have learnt during the project which can help you take your organisation with you and enable you to implement a huge change management project successfully. Hint - it's all about the people! The session was facilitated by Claire Gibbons and Russell Allen, University of Bradford.
In previous IWMWs sessions have focussed on issues such as: Should we buy or build our CMS? Which CMS should we implement? How do we implement our CMS? How can we measure the impact of our CMS Implementation? And how do we address The CMS Challenge? But last year it was claimed that "There is no such thing as a silver bullet" and that a CMS will not solve all your problems. Has the CMS bubble bust? Has content management become content mis-management? In the light of new approaches, such as Web 2.0, and new 'ways of doing things' is there a feeling of disillusionment with 'ye old CMS'? Or does a CMS remain the backbone of a good institutional Web site? In this debate you will hear the arguments for and against content management systems and will have an opportunity to express your views.